图结构练习——判断给定图是否存在合法拓扑序列
2015-11-13 19:22
260 查看
图结构练习——判断给定图是否存在合法拓扑序列
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<stdio.h> #include<string.h> int map[20][20],in[20]; int n; void topo() { int i,j,k,l; for(i=1;i<=n;i++) { k=0; for(j=1;j<=n;j++) if(in[j]==0) { k=1; in[j]=-1; for(l=1;l<=n;l++) if(map[j][l]) in[l]--; break; } if(k==0) break; } if(k==0) printf("NO\n"); else printf("YES\n"); } int main() { int i,j,m,k,t; while(scanf("%d %d",&n,&m)!=EOF) { memset(map,0,sizeof(map));\ memset(in,0,sizeof(in)); while(m--) { scanf("%d %d",&i,&j); map[i][j]=1; in[j]++; } topo(); } }
相关文章推荐
- Search a 2D Matrix
- 基本类型的递减排序简单实现
- 半个柏林的路灯都让这家公司变成了电动汽车充电桩
- 使用Sublime Text 2编译运行C/C++程序
- 图结构练习——BFS——从起始点到目标点的最短步数
- gdb kernel 调试
- iOS 对plist增改操作
- 数据结构小练
- CA证书已成累赘,互联网平台安全信任机制的探讨,纯技术贴。文:高航
- Google Protocol Buffer 的使用和原理
- 源代码字符编码不一致导致显示乱码
- vs2010 opencv2.4 中出现的问题
- 知乎爬虫(一)
- 关于memset赋值的问题
- 软件工程的瀑布, 大泥球, 教堂,集市,和银弹
- 源代码字符编码不一致导致显示乱码
- 图结构练习——BFSDFS——判断可达性
- Linux下目录 /opt 和目录 /usr/local 的区别
- VC静态库的创建和使用
- 数据结构实验之求二叉树后序遍历和层次遍历