迷宫城堡
来源:互联网 发布:ubuntu wingide 破解 编辑:程序博客网 时间:2024/04/28 12:22
迷宫城堡
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5905 Accepted Submission(s): 2599
Problem Description
为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明可以通过这个通道由A房间到达B房间,但并不说明通过它可以由B房间到达A房间。Gardon需要请你写个程序确认一下是否任意两个房间都是相互连通的,即:对于任意的i和j,至少存在一条路径可以从房间i到房间j,也存在一条路径可以从房间j到房间i。
Input
输入包含多组数据,输入的第一行有两个数:N和M,接下来的M行每行有两个数a和b,表示了一条通道可以从A房间来到B房间。文件最后以两个0结束。
Output
对于输入的每组数据,如果任意两个房间都是相互连接的,输出"Yes",否则输出"No"。
Sample Input
3 31 22 33 13 31 22 33 20 0
Sample Output
YesNo
Author
Gardon
Source
HDU 2006-4 Programming Contest
#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define M 100010#define N 10010struct node{ int v,next;} unit[M];int first[N],stack[N],DFN[N],Low[N],B[M];int instack[M];int n,m,c,sc,top,num;void init(){ c=0; sc=top=num=0; memset(first,-1,sizeof(first)); memset(DFN,0,sizeof(DFN));}void add(int a,int b){ unit[num].v=b; unit[num].next=first[a]; first[a]=num++;}void Tarjan(int v){ int min,t,e,j; DFN[v]=Low[v]=++num; instack[v]=1; stack[top++]=v; for(e=first[v]; e!=-1; e=unit[e].next) { j=unit[e].v; if(!DFN[j]) { Tarjan(j); if(Low[v]>Low[j]) { Low[v]=Low[j]; } } else if(instack[j]&&DFN[j]<Low[v]) { Low[v]=DFN[j]; } } if(DFN[v]==Low[v]) { sc++; do { t = stack[--top]; instack[t] = 0; B[t] = sc; } while(t != v); }}void solve(){ int i; for(i=1; i<=n; i++) { if(!DFN[i]) { Tarjan(i); } }}int main(){ while(scanf("%d%d",&n,&m)&&(n||m)) { init(); int i,j; for(i=0; i<m; i++) { int a,b; scanf("%d%d",&a,&b); add(a,b); } solve(); if(n<=1) { printf("Yes\n"); continue; } //printf("%d\n",sc); if(sc==1) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- 迷宫城堡
- 迷宫城堡
- 迷宫城堡
- 迷宫城堡
- 迷宫城堡
- HDOJ 1926 迷宫城堡
- hdu 1269 迷宫城堡
- HDU 1269 迷宫城堡
- HDU 1269 - 迷宫城堡
- hdu1269 迷宫城堡 (模板)
- HDU 1269 迷宫城堡
- HDOJ 1269 迷宫城堡
- 迷宫城堡-Tarjin
- HDU 迷宫城堡
- hdu 1269 迷宫城堡
- hdu 1269 迷宫城堡
- HDU 1269 迷宫城堡
- hdu1269 迷宫城堡
- [Python] The project structure in Django
- Audio系统综述
- NOVA-API服务启动流程
- mongoDB学习笔记——存取图片(C#)
- 通用手风琴代码
- 迷宫城堡
- 锚点滑动
- spring-security-samples-tutorial-2.0.x.war 学习一
- ubuntu deb包管理
- 整数对
- C语言 windows下如何获取开机时间
- NOVA-SCHEDULER服务启动流程
- 2013 蓝桥杯 【初赛试题】 错误票据
- AudioSystem类