當前位置:編程學習大全網 - 網站源碼 - 求此題FREE PASCAL源代碼

求此題FREE PASCAL源代碼

妳好,這是壹道很典型的動態規劃的題目。用背包思想,轉移方程就是:f[j]:=f[j-a[i]]+b[i]。

下面就是源代碼:

var

m,t,i,j:longint;

f:array[0..1000000]

of

longint;

a,b:array[0..600]

of

longint;

begin

readln(t,m);

for

i:=1

to

m

do

readln(a[i],b[i]);

fillchar(f,sizeof(f),0);

for

i:=1

to

m

do

for

j:=t

downto

a[i]

do

if

f[j]<f[j-a[i]]+b[i]

then

f[j]:=f[j-a[i]]+b[i];

writeln(f[t]);

end.

如果要用文件形式的話就是:

var

m,t,i,j:longint;

f:array[0..1000000]

of

longint;

a,b:array[0..600]

of

longint;

begin

assign(input,'文件名.in');

reset(input);

assign(output,'文件名.out');

rewrite(output);

readln(t,m);

for

i:=1

to

m

do

readln(a[i],b[i]);

fillchar(f,sizeof(f),0);

for

i:=1

to

m

do

for

j:=t

downto

a[i]

do

if

f[j]<f[j-a[i]]+b[i]

then

f[j]:=f[j-a[i]]+b[i];

writeln(f[t]);

close(input);

close(output);

end.

謝謝,祝妳好運。

  • 上一篇:收盤價高於n日內所有漲停板價格選股公式
  • 下一篇:遇到運營商DNS劫持怎麽辦?
  • copyright 2024編程學習大全網