原来没看数据 打啦个暴力30分......;
然后想了想用spfa优化了一下 结果20分......;
书上说用拓扑 但我自己造的数据把拓扑完美推翻.......
后来才看到题目上说的是n个代表路的相交处.....
从新整理思路:
n为路的相交处 入度为0的 点只有起点 ,图不构成环 >>>推得 拓扑构图成立。
然后就是两个关键的虱子了:
最后记得要-1;
代码
#include#include #include #include #include using namespace std;struct { int v,y,next;}e[1000000];int lin[100000]={};int id[1000000]={};int len=0;int init(int x,int y,int v){ e[++len].next=lin[x]; e[len].v=v; e[len].y=y; lin[x]=len; id[y]++;}int q[1000000];int sum[100000]={};int tt[1000000]={};int head=0,tail=0;int topsort(int x){ q[++tail]=x; while(head >n>>m>>s>>s1>>t; for(int i=1;i<=m;i++) { int a,b,c; cin>>a>>b>>c; init(a,b,c); } tt[s]=1; topsort(s); //cout< <