P1249 最大乘積 洛谷

2021-10-10 02:13:22 字數 1172 閱讀 4367

題目

p1249 最大乘積

分析

一道高精+貪心

乙個數拆的越多乘積會越大,但不要拆出1,這樣浪費了

所以就2, 3, 4, 5, ~

但也不能連續的一直拆, 因為可能不夠拆了

所以就可以跳出那個數 把那個數拆給前面的

大概就這樣

上**

#include

using namespace std;

const

int n =

500;

string f

(int x)

while

(x !=0)

; c[i]

='\0'

;for

(i--

, j =

0; j <= i/

2; j++

, i--

)return c;

}string mul

(string a, string b)}if

(c[la+lb]

) s +

= c[la+lb]

+'0'

;for

(int i = la+lb-

1; i >=

1; i--

)return s;

}int n, c =

1, ans[

1001];

string s[

1001

], m =

"1";

intmain()

//特判,如果n小於5,自己本身就是最優解

for(

int i =

2; i <= n; i++

)else

break;}

for(

int i = c-

1; i >=

1; i++)}

if(n >0)

for(

int i =

1; i < c; i++

) cout << endl << m;

return0;

}

chapter 章節

P1249 最大乘積

problem p1249 最大乘積 contest luogu url memory limit 125 mb time limit 1000 ms user pannnn include using namespace std 把n分拆成若干個互不相等的自然數的和的分法只有有限種,因而一定存在一...

P1249 最大乘積 (數論 貪心)

題目鏈結 題面 題解 從2開始連續幾個自然數的乘積最大。假設我們 2 3 4 k n 剛好成立。我們設ans 2 3 4 k 如果ans n,我們直接輸出乘積即可。如果ans n 1,那我們去掉2,令k 1 如果ans n 1 假設 ans n p,那麼我們去掉p即可。因為需要大數,就用python...

luogu p1249 最大乘積

傳送門 乙個正整數一般可以分為幾個互不相同的自然數的和,如 3 1 2 4 1 3 5 1 4 2 3 6 1 5 2 4 現在你的任務是將指定的正整數 n 分解成若干個互不相同的自然數的和,且使這些自然數的乘積最大。只乙個正整數 n 3 leq n leq 10000 第一行是分解方案,相鄰的數之...