nyist 541最强DE 战斗力
生活随笔
收集整理的這篇文章主要介紹了
nyist 541最强DE 战斗力
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
? ? 顯然,將部隊分為2個作戰隊伍(一個為2,另一個為3),總的戰斗力達到最大! 輸入第一行: N表示有N組測試數據. (2<=N<=5)
接下來有N行,每行有一個整數Ti 代表趙國部隊的兵力. (1<=Ti<=1000) i=1,…N
輸出對于每一行測試數據,輸出占一行,僅一個整數S,表示作戰安排的最大戰斗力. 樣例輸入 2
5
4 樣例輸出 6
4
一個大數問題
#include <stdio.h> #include <string.h>#define N 205int a[N];int judge_3(int m) {return (m - (m%3))/3; }void get_max(int n,int mod1) {int i = 0;a[0] = 1;int t = 0;int k = 0;int sum = 0;//printf("%d\n",n);for(i = 1; i <= n; i++){k =0;while(k <= N){sum = a[k]*3+t;a[k] = sum %10;t = sum /10;k++;}}if(mod1){k = 0;while(k <= N){sum = a[k]*mod1+t;a[k] = sum %10;t = sum /10;k++;}}for(i = N; i >=0; i--)if(a[i]) break;int j = 0;for(j = i; j >= 0; j--)printf("%d",a[j]);printf("\n"); } int main() {int n;scanf("%d",&n);while(n--){memset(a,0,sizeof(a));int m;scanf("%d",&m);int max_n = judge_3((m));int mod1 = m%3;if(mod1 == 1 && max_n >= 1){mod1 = 4;max_n -= 1;}get_max(max_n,mod1);} }
春秋戰國時期,趙國地大物博,資源非常豐富,人民安居樂業。但許多國家對它虎視眈眈,準備聯合起來對趙國發起一場戰爭。
顯然,面對多個國家的部隊去作戰,趙國的兵力明顯處于劣勢。戰斗力是決定戰爭成敗的關鍵因素,一般來說,一支部隊的戰斗力與部隊的兵力成正比。但當把一支部隊分成若干個作戰隊伍時,這個部隊的戰斗力就會大大的增強。
一支部隊的戰斗力是可以通過以下兩個規則計算出來的:
1.若一支作戰隊伍的兵力為N,則這支作戰隊伍的戰斗力為N;
2.若將一支部隊分為若干個作戰隊伍,則這支部隊的總戰斗力為這些作戰隊伍戰斗力的乘積。
比如:一支部隊的兵力為5時的戰斗力分析如下:
| 情況 | 作戰安排 | 總的戰斗力 |
| 1 | 1,1,1,1,1(共分為5個作戰隊伍) | 1*1*1*1*1=1 |
| 2 | 1,1,1,2?? (共分為4個作戰隊伍) | 1*1*1*2=2 |
| 3 | 1,2,2???? (共分為3個作戰隊伍) | 1*2*2=4 |
| 4 | 1,1,3???? (共分為3個作戰隊伍) | 1*1*3=3 |
| 5 | 2,3 ???????(共分為2個作戰隊伍) | 2*3=6 |
| 6 | 1,4??????? (共分為2個作戰隊伍) | 1*4=4 |
| 7 | 5?????????? (共分為1個作戰隊伍) | 5=5 |
接下來有N行,每行有一個整數Ti 代表趙國部隊的兵力. (1<=Ti<=1000) i=1,…N
一個大數問題
#include <stdio.h> #include <string.h>#define N 205int a[N];int judge_3(int m) {return (m - (m%3))/3; }void get_max(int n,int mod1) {int i = 0;a[0] = 1;int t = 0;int k = 0;int sum = 0;//printf("%d\n",n);for(i = 1; i <= n; i++){k =0;while(k <= N){sum = a[k]*3+t;a[k] = sum %10;t = sum /10;k++;}}if(mod1){k = 0;while(k <= N){sum = a[k]*mod1+t;a[k] = sum %10;t = sum /10;k++;}}for(i = N; i >=0; i--)if(a[i]) break;int j = 0;for(j = i; j >= 0; j--)printf("%d",a[j]);printf("\n"); } int main() {int n;scanf("%d",&n);while(n--){memset(a,0,sizeof(a));int m;scanf("%d",&m);int max_n = judge_3((m));int mod1 = m%3;if(mod1 == 1 && max_n >= 1){mod1 = 4;max_n -= 1;}get_max(max_n,mod1);} }
?
轉載于:https://www.cnblogs.com/yyroom/archive/2013/03/29/2989058.html
總結
以上是生活随笔為你收集整理的nyist 541最强DE 战斗力的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个发送短信验证码 然后倒计时实例
- 下一篇: Jar命令