bzoj1263 SCOI2006 整數劃分

2021-07-30 12:40:39 字數 1257 閱讀 8245

傳送門

我們可以求出滿足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...