從檔案中讀入乙個正整數n(10≤n≤31000)。要求將n寫成若干個正整數之和,並且使這些正整數的乘積最大。 例如,n=13,則當n表示為4+3+3+3(或2+2+3+3+3)時,乘積=108為最大。
只有乙個正整數: n (10≤n≤31000)133
108由於對於$a > 1, b > 1$, 有$ab \geq a+b$(因為$ab-a-b=ab-a-b+1-1=(a-1)(b-1)-1\geq 1-1=0$),所以在答案中一定只存在$2,3$兩個數(因為其它數都可以寫成它們的和)。
那麼,若$n>7$,那麼答案中要麼有三個以上的2,要麼有兩個以上的3,而$3^2=9>8=2^3$,所以答案一定有兩個3.
那麼ans*=9;n-=6;直到$n\leq 7$,這個時候直接查表。
附**:
#include int len, ans[5050];void mul(int x)
len = i;
}const int e = ;
int main()
mul(e[n]);
printf("%d\n", len);
for (int i = len - 1; ~i && i >= len - 100; --i)
printf("%d", ans[i]);
return 0;
}
bzoj1263 SCOI2006 整數劃分
傳送門 我們可以求出滿足xx 1 x 1 x 且xx 1 x 1 x 的整數x 然後手玩一下發現x 3 所以要盡可能的多拆出3。不難得到以下方案 1.n 3 0 拆成n 3個3 2.n 3 1 拆成n 3 1個3,2個2 3.n 3 2 拆成n 3個3,1個2 高精度一發水過。uses math v...
bzoj1263 SCOI2006 整數劃分
題目 數學結論題 先考慮全分成實數,根據基本不等式,這些數要全部相等才最大。則設其為x,求x n x 最大,具體證明我當然不會 據說是先取對數,在證明 結論是,x取自然對數時最大,即e,2.7幾幾幾。最接近的整數為3,所以盡量取3,不夠取2,顯然不取1。include using namespace...
BZOJ 1079 SCOI2008 著色方案
題目 分析 一看就覺得是dp或者直接排列組合公式或者容斥?我就只想到dp的,我們用dp i j 表示前i種顏色,排列出有j對相鄰一樣顏色的方案數。當出現乙個新的顏色時,我們把這個顏色插板法插進去,我們要列舉插入的方式,可能插到相鄰顏色一樣的中間,或者不是,然後進行狀態轉移.具體看 include i...