SDUT2140_图结构练习——判断给定图是否存在合法拓扑序列(邻接表)
来源:互联网 发布:神结局电影 知乎 编辑:程序博客网 时间:2024/05/22 07:57
图结构练习——判断给定图是否存在合法拓扑序列
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。
输入
输入包含多组,每组格式如下。
第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n<=10)
后面m行每行两个整数a b,表示从a到b有一条有向边。
输出
若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。
示例输入
1 02 21 22 1
示例输出
YESNO
提示
解题报告
邻接表实现。。。
#include <iostream>#include <stdio.h>#include<string.h>using namespace std;int n,m;struct node{ int u,v,w; int next;} edge[1000];int cnt,d[1000],head[1000];void add(int u,int v,int w){ edge[cnt].v=v; edge[cnt].w=w; edge[cnt].next=head[u]; head[u]=cnt++;}void tops(){ int i,j,c=0,u; for(i=0; i<n; i++) { u=-1; for(j=0; j<n; j++) { if(d[j]==0) { u=j; d[j]--; c++; break; } } for(j=head[u]; j!=-1; j=edge[j].next) { if(edge[j].w==1) { d[edge[j].v]--; edge[j].w=0; } } } if(c!=n) printf("NO\n"); else printf("YES\n");}int main(){ int a,b,i,j; while(~scanf("%d%d",&n,&m)) { cnt=0; memset(head,-1,sizeof(head)); memset(d,0,sizeof(d)); memset(edge,0,sizeof(edge)); for(i=0; i<m; i++) { scanf("%d%d",&a,&b); add(a,b,1); d[b]++; } tops(); } return 0;} /**************************************Problem id: SDUT OJ 2140 User name: acm2013叶思俊 Result: Accepted Take Memory: 468K Take Time: 0MS Submit Time: 2014-02-26 16:24:10 **************************************/
0 0
- SDUT2140_图结构练习——判断给定图是否存在合法拓扑序列(邻接表)
- SDUT 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- SDUT OJ 2140 图结构练习——判断给定图是否存在合法拓扑序列
- sdut 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- 图结构练习——判断给定图是否存在合法拓扑序列
- poj 2138 DFS
- centos源码安装subversion
- pcDuino支持的scratch编程(三)用角色控制灯
- android学习总结(一)
- 用visio制作用户界面原型(wireframe/prototype)教程
- SDUT2140_图结构练习——判断给定图是否存在合法拓扑序列(邻接表)
- 快下班了,亲们,再见
- html编写问题总结
- autotrace 和explain plan for可能导致执行计划错误
- IOS学习笔记(十)之UIImageView图片视图的基本概念和使用方法
- 用VMware克隆CentOS 6.4后网卡不能使用处理方法
- OK6410使用DNW下载.bin
- 【OpenCV2.4】SVM处理线性不可分的例子
- gcc编译动态和静态链接库