nyoj 541 最強DE 戰鬥力(數論)

2021-07-11 15:57:35 字數 1581 閱讀 5408

最強de 戰鬥力

時間限制:

1000 ms  |  記憶體限制:

65535 kb     難度:

3 描述

春秋戰國時期,趙國地大物博,資源非常豐富,人民安居樂業。但許多國家對它虎視眈眈,準備聯合起來對趙國發起一場戰爭。

顯然,面對多個國家的部隊去作戰,趙國的兵力明顯處於劣勢。戰鬥力是決定戰爭成敗的關鍵因素,一般來說,一支部隊的戰鬥力與部隊的兵力成正比。但當把一支部隊分成若干個作戰隊伍時,這個部隊的戰鬥力就會大大的增強。

一支部隊的戰鬥力是可以通過以下兩個規則計算出來的:

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

分析:一道數學題,需要的是良好的數學功底,分析出資料之間的關係,確實需要加強

其實這道題 自己寫幾個數找找規律就找到了會發現把乙個數盡可能的拆分為多個3,

如果餘1,把最後乙個3加1,如果餘2再乘以2.

比如10的最大戰鬥力為3*3*4,11的為3*3*3*2;

還有就是大數的處理,其實就是跟字串中的每一位都相乘,注意進製。

#include#include#includeint a[305];

void bignum(int n) //最後結果可以過大,需要用字串做處理

}int main()

//如果餘2,最後乘2

bignum(n);

int i = 300; //因為不知道最後有多少位,所以要盡量大

while (a[--i] == 0);//把前導0全部忽略

for (i; i >= 0; i--) //輸出後面的結果

printf("%d", a[i]);

puts("");

}return 0;

}

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 ...

最強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的倍數,接下來就是個大數處理問題,...

題目541最強DE 戰鬥力

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 春秋戰國時期,趙國地大物博,資源非常豐富,人民安居樂業。但許多國家對它虎視眈眈,準備聯合起來對趙國發起一場戰爭。顯然,面對多個國家的部隊去作戰,趙國的兵力明顯處於劣勢。戰鬥力是決定戰爭成敗的關鍵因素,一般來說,一支部隊的戰鬥力與...