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.