博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TYVJ1704 Poj3249 绿豆蛙寻宝
阅读量:4948 次
发布时间:2019-06-11

本文共 1665 字,大约阅读时间需要 5 分钟。

    题目说是拓扑图,所以提示是DP,之前跟FK学到逆拓扑这次用了。需要注意的是题目要求一条完整的路,所以初始化为-oo。因为TUOPU写萎了,WA了2次。之前FK那个题因为是无向图,而且是树,而且起点还是root,所以可以直接BFS就得到拓扑序,这个题不行。

Codeuses math;const maxn=100000;      maxm=11000000;var a,Q,Adjlist,d:array[1..maxn] of longint;    f:array[1..maxn] of int64;    vis:array[1..maxn] of boolean;    v,next:array[1..maxm] of longint;    count,x,y,i,h,t,tot,n,m:longint;    ans:int64;procedure build(x,y:longint);          begin          inc(tot);          v[tot]:=y;          next[tot]:=Adjlist[x];          Adjlist[x]:=tot;          end;procedure TUOPUSort;          var i:longint;          begin          while h
0 do begin dec(d[v[i]]); if(not vis[v[i]])and(d[v[i]]=0) then begin inc(t);Q[t]:=v[i]; vis[v[i]]:=true; end; i:=next[i];end;end; end;procedure calc; var i,u:longint; begin for h:=t downto 1 do begin i:=Adjlist[Q[h]]; if i=0 then f[Q[h]]:=A[Q[h]] else f[Q[h]]:=$8fffffffffffffff; while i<>0 do begin f[Q[h]]:=max(f[v[i]]+A[Q[h]],f[Q[h]]); i:=next[i];end; end; end;beginreadln(n,m);ans:=$8fffffffffffffff;h:=0;t:=0;for i:=1 to n do readln(a[i]);for i:=1 to m do begin readln(x,y); build(x,y); inc(d[y]); end;for i:=1 to n do if(d[i]=0) then begin inc(t); Q[t]:=i; vis[i]:=true; end;count:=t;TUOPUSort;calc;for i:=1 to count do ans:=max(f[Q[i]],ans);writeln(ans);end.

转载于:https://www.cnblogs.com/lijianlin1995/archive/2012/09/01/2666555.html

你可能感兴趣的文章
原因和证明
查看>>
VC6.0图像处理2--图像的反色
查看>>
Snoop, 对WPF程序有效的SPY++机制
查看>>
Does not contain a valid host;port authority解决方法
查看>>
JAVA程序猿怎么才干高速查找到学习资料?
查看>>
使用axel下载百度云文件
查看>>
Qt中图像的显示与基本操作
查看>>
详解软件工程之软件测试
查看>>
WCF(二) 使用配置文件实现WCF应用程序
查看>>
【CodeForces 803 C】Maximal GCD(GCD+思维)
查看>>
python 去掉换行符或者改为其他方式结尾的方法(end='')
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
REST构架风格介绍:状态表述转移
查看>>
struct {0}初始化
查看>>
c++ operator
查看>>
apache 添加 ssl_module
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
getQueryString
查看>>
Servlet文件上传和下载的复习
查看>>