切换到宽版
  • 5935阅读
  • 3回复

这程序有什么问题啊? [复制链接]

上一主题 下一主题
离线sui8899174
 
只看楼主 倒序阅读 0 发表于: 2006-11-08
program ex;
var
c:array [0..1000] of longint ;
t,m,a,b,i,j,sum:longint;
begin
assign(input,'medic.in');assign(output,'medic.out');
reset(input);rewrite(output);
readln(t,m);
for i:=1 to t do c[i]:=-1;
c[0]:=0;
for i:=1 to m do
begin
readln(a,b);
for j:=t-a downto 0 do;
if (c[j]>=0) and (c[j+a]<c[j]+b) then c[j+a]:=c[j]+b
end;
sum:=-1;
for i:= 0 to t do if sum<c[i] then sum:=c[i];
writeln(sum);
close(input);close(output);
end.
离线stevenjl

只看该作者 1 发表于: 2006-11-08
编译通过……但是我不知道你要干什么啊?
Dream Walker...
离线archimedes

只看该作者 2 发表于: 2006-11-09
medic, NOIP2005普及组第3题
离线tubro
只看该作者 3 发表于: 2006-11-09
我是这写的:
var
sh,w,max:array[0..1000]of longint;
l:array[0..1000,0..1000]of longint;
j,d,tt,n,i,y,u:longint;

begin
read(tt,n);
for i:=1 to n do
read(sh[i],w[i]);
max[0]:=0;
for u:=1 to n do

for i:=tt downto 1 do
if i>=sh[u] then if max[i-sh[u]]+w[u]>max[i] then max[i]:=max[i-sh[u]]+w[u];


write(max[tt]);
end.
快速回复
限100 字节
 
上一个 下一个