時間限制:
1000 ms | 記憶體限制:
65535 kb
描述 春秋戰國時期,趙國地大物博,資源非常豐富,人民安居樂業。但許多國家對它虎視眈眈,準備聯合起來對趙國發起一場戰爭。
顯然,面對多個國家的部隊去作戰,趙國的兵力明顯處於劣勢。戰鬥力是決定戰爭成敗的關鍵因素,一般來說,一支部隊的戰鬥力與部隊的兵力成正比。但當把一支部隊分成若干個作戰隊伍時,這個部隊的戰鬥力就會大大的增強。
一支部隊的戰鬥力是可以通過以下兩個規則計算出來的:
1.若一支作戰隊伍的兵力為n,則這支作戰隊伍的戰鬥力為n;
2.若將一支部隊分為若干個作戰隊伍,則這支部隊的總戰鬥力為這些作戰隊伍戰鬥力的乘積。
比如:一支部隊的兵力為5時的戰鬥力分析如下:
情況作戰安排
總的戰鬥力
1,1,1,1,1(共分為5個作戰隊伍)
1*1*1*1*1=1
1,1,1,2 (共分為4個作戰隊伍)
1*1*1*2=2
1,2,2 (共分為3個作戰隊伍)
1*2*2=4
1,1,3 (共分為3個作戰隊伍)
1*1*3=3
2,3(共分為2個作戰隊伍)
2*3=6
1,4 (共分為2個作戰隊伍)
1*4=4
5 (共分為1個作戰隊伍)
5=5 顯然,將部隊分為2個作戰隊伍(乙個為2,另乙個為3),總的戰鬥力達到最大!
輸入第一行: n表示有n組測試資料. (2<=n<=5)
接下來有n行,每行有乙個整數ti 代表趙國部隊的兵力. (1<=ti<=1000) i=1,…n
輸出對於每一行測試資料,輸出佔一行,僅乙個整數s,表示作戰安排的最大戰鬥力.
樣例輸入
254樣例輸出
64**
第五屆河南省程式設計大賽
上傳者
acm_李如兵
題目:給你乙個數n 讓你將它分為 1~n 個部分 其中求最大值
思路:我是找規律找出來的
1~4 最大分法所得的值 就是自己本身
數 得分
5 2*3
6 3*3
7 2*2*3
8 2*3*3
9 3*3*3
10 1*3*3*3
.....
不難發現最優的解法 就趨向 3與2的乘積
理論證明:
依題意:
a1+ a2 + a3 + a4 + … + an = m
我們要求的:
y = a1 * a2 *a3 * a4 * … * an
由對稱式的原理可得
當:a1 = a2 = a3= a4 = … = an 時y最大
n*a = m ①
an = y ②
由①②可得 a(m/a)
轉化為求 f( a ) =a(m/a) 的最大值,直接給出函式的影象和它的結論:
當a為3 的時候函式可以取到最大值
#includeusing namespace std;
int a[1005];
int t;
void mul(int n)
}int main()
a[0]=1;
while(n>4||n-3==0)
while(n>=2)
int i;
for(i = 999;!a[i]; i--) ;
// printf("%d",i);
for(int k=i; k>=0; k--)
printf("%d",a[k]);
printf("\n");}}
nyoj 541 最強DE 戰鬥力(數論)
最強de 戰鬥力 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 春秋戰國時期,趙國地大物博,資源非常豐富,人民安居樂業。但許多國家對它虎視眈眈,準備聯合起來對趙國發起一場戰爭。顯然,面對多個國家的部隊去作戰,趙國的兵力明顯處於劣勢。戰鬥力是決定戰爭成敗的關鍵因素,一般來說,...
最強DE 戰鬥力
t7最強de 戰鬥力 時間限制 1000 ms 記憶體限制 65535kb 問題描述 春秋戰國時期,趙國地大物博,資源非常豐富,人民安居樂業。但許多國家對它虎視眈眈,準備聯合起來對趙國發起一場戰爭。顯然,面對多個國家的部隊去作戰,趙國的兵力明顯處於劣勢。戰鬥力是決定戰爭成敗的關鍵因素,一般來說,一支...
nyoj541最強DE戰鬥力
nyoj541 1.數字二和三能組成任何數,因此乙個數的最大值的乘積 為2 m 3 n 2.然而3 n 2 n 能用3就不用2 3 1 2 n 1次時 但同時要考慮乙個問題 什麼時候用2 不用 3,其實就是 一種情況 除3的時候有餘數1就浪費了 1 x,不如 給2 就像4 這樣 4 3 1 1 3 ...