[Rqnoj-434]LIGNJA

来源:互联网 发布:javascript登录页面 编辑:程序博客网 时间:2024/06/05 20:01

LIGNJA
DP题,最大空闲等于N-最小花费,这个存储方式倒是挺特别。
代码:

type    link=^node;    node=record               x,t:longint;               next:link;               end;var   g:array[1..10001] of link;   f:array[1..10001] of longint;   n,k:longint;procedure connect(a,t:longint);var   p:link;begin     new(p);     p^.x:=a+t; p^.t:=t;     p^.next:=g[a]; g[a]:=p;end;procedure main;var   i,a,t:longint;   p:link;begin     readln(n,k);     for i:=1 to k do begin         readln(a,t);         connect(a,t);     end;     fillchar(f,sizeof(f),0);     for i:=n downto 1 do         if g[i]=nil then f[i]:=f[i+1]         else begin              f[i]:=maxlongint;              p:=g[i];              while p<>nil do begin                    if p^.t+f[p^.x]<f[i] then f[i]:=p^.t+f[p^.x];                    p:=p^.next;              end;         end;     write(n-f[1]);end;begin     main;end.