讨论 / 受不了了 求错!!!!
wjltz 2011-08-11 11:01:00
点我顶贴 收藏 删除
program lt1;

var a:array[0..205,0..25] of int64;

b:array[0..25,0..205] of int64;

n,m,i,j,k,y:longint;

t,x:int64;

begin

readln(n,m);

fillchar(b,sizeof(b),0);

for i:=1 to m do

begin

readln(x,y);

b[i,1]:=x;

for j:=2 to n do

begin

t:=j;

for k:=1 to y-1 do

t:=t*j;

b[i,j]:=x*t;

end;

end;

for i:=0 to m do

for j:=0 to n do

a[i,j]:=maxlongint;

a[0,0]:=0;

for i:=1 to m do

for j:=1 to n do

for k:=0 to j do

if a[i,j]>a[i-1,j-k]+b[i,k] then a[i,j]:=a[i-1,j-k]+b[i,k];

writeln(a[m,n]);

end.

#1 wjltz@2011-08-11 11:01:00
回复 删除
妹的,把i那一维压掉就对了
查看更多回复
提交回复