强联通图判断 裸强联通判断 hdu Problem-1269 迷宫城堡
2013-10-23 20:03
375 查看
#include<iostream> using namespace std; #define Size 100010 struct node { int e,next; }edge1[Size],edge2[Size]; int head1[10002],head2[10003],visit[10002]; void dfs1(int i) { visit[i]=1; for(int p=head1[i];p!=-1;p=edge1[p].next) if(!visit[edge1[p].e]) dfs1(edge1[p].e); } void dfs2(int i) { visit[i]=1; for(int p=head2[i];p!=-1;p=edge2[p].next) if(!visit[edge2[p].e]) dfs2(edge2[p].e); } int main() { int m,n,a,b,flag=0; int i; while(cin>>n>>m,n||m) { memset(head1,-1,sizeof(head1)); memset(head2,-1,sizeof(head2)); memset(visit,0,sizeof(visit)); for(i=0;i<m;i++){ cin>>a>>b; edge1[i].e=b; edge1[i].next=head1[a]; head1[a]=i; edge2[i].e=a; edge2[i].next=head2[b]; head2[b]=i; } for(i=1;i<=n;i++){ if(!visit[i]) { dfs1(i);flag++; } } memset(visit,0,sizeof(visit)); for(i=1;i<=n;i++){ if(flag>2)break; if(!visit[i]) { flag++; dfs2(i); } } if(flag==2)cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }
相关文章推荐
- s3c2440 uda1341声卡驱动分析
- BNU A Simple Tree Problem 线段树
- lucene4.5源码分析系列:lucene默认索引的文件格式-总述
- 数塔
- @class && #import
- javascript与服务器1
- 【second】Letter Combinations of a Phone Number
- ASP.NE的缓存技术提高Web站点的性能
- 打开新的浏览器窗口
- scanf的使用说明
- dll依赖跟踪(sxstrace.exe)
- ANTLR3 简介及示例
- UVA 567 Floyd算法
- 二分图最大匹匈牙利算法图解
- 并查集判断无向图联通
- javascript与服务器2
- lucene4.5源码分析系列:lucene概述
- 图模型(graphical model, GM)的表示
- TYVJ 1443 油滴扩展
- struts2 转换器