/ Vijos / 讨论 / 区间 /

谁帮我看看60分

我为什么错了

var n,i,j,a,b,c,max:longint;

dis:array[0..50001]of longint;

bb:array[0..250000,1..3]of longint;

f:boolean;

begin

readln(n);

max:=0;

for i:=1 to n do begin

readln(bb,bb,bb);

dec(bb);

if bb>max then max:=bb;

end;

for i:=1 to max do begin

bb:=i-1;bb:=i;bb:=0;

bb:=i;bb:=i-1;bb:=-1;

end;

fillchar(dis,sizeof(dis),0);

for i:=1 to max-1 do begin

f:=true;

for j:=1 to n+n+n do

if (dis[bb[j,1]]+bb[j,3]>dis[bb[j,2]]) then begin

dis[bb[j,2]]:=dis[bb[j,1]]+bb[j,3];

f:=false;

end;

if f then break;

end;

a:=0;

for i:=1 to max do

if dis[i]>a then a:=dis[i];

writeln(a);

end.

2 条评论

  • 1

信息

ID
1532
难度
7
分类
图结构 | 差分约束贪心 点击显示
标签
(无)
递交数
1744
已通过
290
通过率
17%
被复制
3
上传者