最强DE 战斗力(nyoj541)

题意不用解释了就是求积最大,但考虑到什么时候积会是最大

a1+a2+.....an=M;

a1*a2*.....an=max;

要求当a1+...an=n 时求他们所有值得最大乘积当且仅当

a1=a2=a3=...=an

所以原式化简为

n*a=M;

max=a^n;带入解得最大的取值为3;

所以取值都是3的倍数,接下来就是个大数处理问题,最大的值会有pow(3,32)*4,所以用数组储存,开一个200的数组足够了!

代码:

 1 #include<iostream>
2 #include<cstdio>
3 #include<string>
4 #include<string.h>
5 #include<algorithm>
6 #include<cmath>
7 #include<vector>
8 #include<cstring>
9 #include<stack>
10 #include<stdlib.h>
11 #include<ctype.h>
12 using namespace std;
13 #define MAXN 1300
14 #define inf 100000
15
16 int dp[230];
17 void acc(int x)
18 {
19 int i,t;
20 for( i=t=0;i<200;i++)
21 {
22 t=dp[i]*x+t;
23 dp[i]=t%10;
24 t=t/10;
25 }
26 }
27 int main()
28 {
29 int t,n,a;
30 cin>>t;
31 while(t--)
32 {
33 int i,j;
34 memset(dp,0,sizeof dp);
35 cin>>n;
36 a=n/3;
37 if(n%3==1)a--;//如果取余得1,那最大值就要包含一个4
38 dp[0]=1;
39 for( i=0;i<a;i++)
40 acc(3);//a个3相乘
41 if(n%3==1)acc(4);
42 else if(n%3==2)acc(2);
43 j=200;
44 while(!dp[j])
45 {
46 j--;
47 }
48 for( i=j;i>0;i--)
49 cout<<dp[i];
50 cout<<dp[0]<<endl;
51 }
52 }

最强DE 战斗力(nyoj541)

时间: 2024-08-01 11:01:38

最强DE 战斗力(nyoj541)的相关文章

NYOJ541 最强DE 战斗力 【数学】+【大数】

最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这

最强DE 战斗力

T7最强DE 战斗力 时间限制:1000 ms |  内存限制:65535KB [问题描述] 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这支

最强DE战斗力

最强DE战斗力 时间限制: 1 Sec  内存限制: 128 MB提交: 40  解决: 14[提交][状态] 题目描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一

NYOJ - 541 - 最强DE 战斗力 (第五届河南省程序设计大赛--大数!!)

最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这

最强DE 战斗力 【大数】

最强DE 战斗力 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 86  Solved: 13 [Submit][Status][Web Board] Description 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战

nyoj 最强DE 战斗力 (数论入门)

最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这支作战队伍

NYOJ 541-最强DE 战斗力【大数,数的拆分问题】

最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这

第五届河南省acm省赛 最强DE 战斗力

最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这

[河南省ACM省赛-第五届] 最强DE 战斗力 (nyoj 541)

题解链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=541 几天前百度题解后用数学知识AC的,后来大牛说这是一道动态规划题. 网上的数学解题链接:http://blog.csdn.net/x314542916/article/details/8204583 d(i) = max{d(j)*d(n-j) | 1<= j <=n/2}; 用Java写比较简单 import java.math.BigInteger; import java.u