SDUT OJ 2140 图结构练习——判断给定图是否存在合法拓扑序列
2016-08-19 11:11
295 查看
图结构练习——判断给定图是否存在合法拓扑序列
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。
输入
输入包含多组,每组格式如下。第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n<=10)
后面m行每行两个整数a b,表示从a到b有一条有向边。
输出
若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。
示例输入
1 0 2 2 1 2 2 1
示例输出
YES NO
提示
#include<bits/stdc++.h> using namespace std; int p[20][20]; int d[20]; int n,m,u,v,k,flag; void Deal() { for(int i=1;i<=n;i++) { flag=0; for(int j=1;j<=n;j++) { if(d[j]==0) { flag=1; d[j]=-1; for(int k=1;k<=n;k++) { if(p[i][k]) { d[k]--; } } break; } } if(!flag) break; } if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; } int main() { while(cin>>n>>m) { memset(p,0,sizeof(p)); memset(d,0,sizeof(d)); for(int i=0;i<m;i++) { cin>>u>>v; p[u][v]=1; d[v]++; } Deal(); } return 0; }
相关文章推荐
- SDUT OJ 2140 图结构练习——判断给定图是否存在合法拓扑序列
- sdut oj2140 图结构练习——判断给定图是否存在合法拓扑序列
- SDUT2140图结构练习——判断给定图是否存在合法拓扑序列
- SDUT2140_图结构练习——判断给定图是否存在合法拓扑序列(邻接表)
- 图结构练习——判断给定图是否存在合法拓扑序列 SDUT 2140
- 暑假集训 8.19 图结构练习——判断给定图是否存在合法拓扑序列 sdut2140
- [SDUT](2140)图结构练习——判断给定图是否存在合法拓扑序列 ---拓扑排序(图)
- SDUT 2140 图结构练习——判断给定图是否存在合法拓扑序列
- SDUT 2140 图结构练习——判断给定图是否存在合法拓扑序列
- OJ2140图结构练习——判断给定图是否存在合法拓扑序列
- SDUT2140图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- SDUT 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列