2014 UESTC Training for Graph Theory Problem I 方老师的分身 III
2014-06-25 08:47
435 查看
非常忧伤的WA了很多次。输入的时候 点搞反了。。。
就是拓扑排序。
入度为零的点 入队,分配888。
然后 挨个出队,找到所有 邻接点 然后分配的+1 并入队。此点出队。
结束条件是队列为空,即所有点都被搜过一次。不满足条件就是点重复入队了,也就是环。
点可能有10000 个,不能用邻接矩阵。但是边只有 20000。属于稀疏图。
可以使用邻接表。但是这个题边没有权。所以偷懒用了vector。
就是拓扑排序。
入度为零的点 入队,分配888。
然后 挨个出队,找到所有 邻接点 然后分配的+1 并入队。此点出队。
结束条件是队列为空,即所有点都被搜过一次。不满足条件就是点重复入队了,也就是环。
点可能有10000 个,不能用邻接矩阵。但是边只有 20000。属于稀疏图。
可以使用邻接表。但是这个题边没有权。所以偷懒用了vector。
#include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<vector> using namespace std; int n,m; int in[10001]; int ans[10001]; int main() { int x,y; while(scanf("%d%d",&n,&m)!=EOF) { vector <int> g[10001]; memset(in,0,sizeof(in)); memset(ans,0,sizeof(ans)); while(m--) { scanf("%d%d",&x,&y); g[y].push_back(x); in[x]++; } queue<int>q; for(int i=1;i<=n;i++) { if(in[i]==0) { q.push(i); ans[i]=888; } } int number=0; while(!q.empty()) { int tmp=q.front();q.pop(); number++; for(int i=0;i<g[tmp].size();i++) { int v=g[tmp][i]; in[v]--; if(in[v]==0) { ans[v]=ans[tmp]+1; q.push(v); } } } if(number<n)puts("-1"); else { int sum=0; for(int i=1;i<=n;i++) sum+=ans[i]; printf("%d\n",sum); } } return 0; }
相关文章推荐
- 2014 UESTC Training for Graph Theory Problem H 方老师的分身 II
- 2014 UESTC Training for Graph Theory Problem G 方老师分身 I
- 2014 UESTC Training for Graph Theory Problem F 握手
- UESTC_方老师和农场 2015 UESTC Training for Graph Theory<Problem L>
- 2014 UESTC Training for Graph Theory Problem K WHITE ALBUM
- 2014 UESTC Training for Graph Theory J
- UESTC_邱老师的脑残粉 2015 UESTC Training for Graph Theory<Problem D>
- 2014 UESTC Training for Graph Theory K
- UESTC_树上的距离 2015 UESTC Training for Graph Theory<Problem E>
- 2014 UESTC Training for Graph Theory L
- UESTC_传输数据 2015 UESTC Training for Graph Theory<Problem F>
- UESTC_Big Brother 2015 UESTC Training for Graph Theory<Problem G>
- UESTC_韩爷的情书 2015 UESTC Training for Graph Theory<Problem H>
- UESTC_排名表 2015 UESTC Training for Graph Theory<Problem I>
- UESTC_小panpan学图论 2015 UESTC Training for Graph Theory<Problem J>
- UESTC_王之盛宴 2015 UESTC Training for Graph Theory<Problem K>
- 2014 UESTC Training for Graph Theory B
- 2014 UESTC Training for Graph Theory C
- 2014 UESTC Training for Graph Theory F
- 2014 UESTC Training for Search Algorithm Problem D 方老师与素数