图结构练习——判断给定图是否存在合法拓扑序列
来源:互联网 发布:sybase数据库建表语句 编辑:程序博客网 时间:2024/05/22 05:08
题目描述
给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。输入
输入包含多组,每组格式如下。第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n<=10)后面m行每行两个整数a b,表示从a到b有一条有向边。 输出
若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。 示例输入
1 02 21 22 1
示例输出
YESNO
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int map[15][15],vis[15],houzhui[15];int n,m;void goujian(){ int a,b,i; memset(map,0,sizeof(map)); memset(vis,0,sizeof(vis)); memset(houzhui,0,sizeof(houzhui)); for(i=1; i<=m; i++) { scanf("%d %d",&a,&b); if(m/p[a][b]==0) { map[a][b]=1; houzhui[b]++; } }}void paixu(){ int i,f,k,j; for(i=1; i<=n; i++) { f=0; for(j=1; j<=n; j++) { if(vis[j]==0&&houzhui[j]==0) //找出入度为0 则可说明合法边存在 { vis[j]=1; for(k=1; k<=n; k++) { if(map[j][k]==1) { houzhui[k]--; //将增加的度和存在的那条变减去。 } } f=1; break; } } if(f==0) { break; } } if(f==1) { printf("YES\n"); } else printf("NO\n");}int main(){ while(scanf("%d %d",&n,&m)!=EOF) { goujian(); paixu(); } return 0;}
给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。
第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n<=10)
后面m行每行两个整数a b,表示从a到b有一条有向边。
1 02 21 22 1
YESNO
0 0
- SDUT 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- SDUT2140_图结构练习——判断给定图是否存在合法拓扑序列(邻接表)
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- SDUT OJ 2140 图结构练习——判断给定图是否存在合法拓扑序列
- sdut 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- Ubuntu-安装rpm格式文件
- Riak Core Guide 3
- 数据结构 第四章 字符串和多维数组 思维导图
- 和更符合法规和
- Python学习笔记-20141201-Python面向对象编程
- 图结构练习——判断给定图是否存在合法拓扑序列
- 音视频开发-------音频参数
- 手机应用软件开发-高通骁龙615与麒麟925 CPU比较-华为Mate 7 金色高配版
- freebsd安装sudo
- Ehcache配置详解
- 高级搜索语法
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- php 获取并解析哈工大ltp-cloud返回的json数据
- Hibernate二级缓存详解