傳送門
我們可以求出滿足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;
var a:array [0..5005] of longint;
n,k,kk,i,j:longint;
u:extended;
begin
read(n);
if (n<=4) then
begin writeln(1); write(n); exit; end;
k:=n div
3; if n mod
3=1then dec(k);
kk:=(n-k*3) div
2; u:=k*ln(3)/ln(10)+kk*ln(2)/ln(10);
writeln(trunc(u)+1);
a[0]:=1; a[1]:=1;
for j:=1
to k do
begin
for i:=1
to a[0] do a[i]:=a[i]*3;
for i:=1
to a[0] do
begin inc(a[i+1],a[i] div
10); a[i]:=a[i] mod
10; end;
if (a[a[0]+1]<>0) then inc(a[0]);
end;
for j:=1
to kk do
begin
for i:=1
to a[0] do a[i]:=a[i]*2;
for i:=1
to a[0] do
begin inc(a[i+1],a[i] div
10); a[i]:=a[i] mod
10; end;
if (a[a[0]+1]<>0) then inc(a[0]);
end;
for i:=a[0] downto max(a[0]-99,1) do
write(a[i]);
end.
bzoj1263 SCOI2006 整數劃分
題目 數學結論題 先考慮全分成實數,根據基本不等式,這些數要全部相等才最大。則設其為x,求x n x 最大,具體證明我當然不會 據說是先取對數,在證明 結論是,x取自然對數時最大,即e,2.7幾幾幾。最接近的整數為3,所以盡量取3,不夠取2,顯然不取1。include using namespace...
BZOJ1263 SCOI2006 整數劃分
從檔案中讀入乙個正整數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 ...
BZOJ 1079 SCOI2008 著色方案
題目 分析 一看就覺得是dp或者直接排列組合公式或者容斥?我就只想到dp的,我們用dp i j 表示前i種顏色,排列出有j對相鄰一樣顏色的方案數。當出現乙個新的顏色時,我們把這個顏色插板法插進去,我們要列舉插入的方式,可能插到相鄰顏色一樣的中間,或者不是,然後進行狀態轉移.具體看 include i...