小希的迷宫.
来源:互联网 发布:js pdf在线预览 编辑:程序博客网 时间:2024/05/02 11:43
Despriction
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路。比如下面的例子,前两个是符合条件的,但是最后一个却有两种方法从5到达8。
Input
输入包含多组数据,每组数据是一个以0 0结尾的整数对列表,表示了一条通道连接的两个房间的编号。房间的编号至少为1,且不超过100000。每两组数据之间有一个空行。
整个文件以两个-1结尾。
Output
对于输入的每一组数据,输出仅包括一行。如果该迷宫符合小希的思路,那么输出”Yes”,否则输出”No”。
Sample Input
6 8 5 3 5 2 6 4
5 6 0 0
8 1 7 3 6 2 8 9 7 5
7 4 7 8 7 6 0 0
3 8 6 8 6 4
5 3 5 6 5 2 0 0
-1 -1
Sample Output
Yes
Yes
No
Code
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int maxn = 100010;int pic[maxn];bool mark[maxn];int MAX = 100010,MIN = -1;int find(int p){ if(p == pic[p]){ return p; } return find(pic[p]);}void init(){ for(int i = 0; i < maxn; ++i){ pic[i] = i; } memset(mark, false, sizeof(mark));}void MaxMin(int a, int b){ MAX = max(a, MAX); MAX = max(b, MAX); MIN = min(a, MIN); MIN = min(b, MIN);}int main(){ int a,b; int kase = 1; while(scanf("%d", &a) == 1 && a != -1){ bool flag=true, flag2 = true, flag3 = true; init(); while(scanf("%d", &b)==1 && b != 0){ flag3 = false; if(flag2){ MAX=a; MIN=b; flag2 = false; } MaxMin(a,b); mark[a] = true; mark[b] = true; a = find(a); b = find(b); if(a == b){ flag = false; }else{ pic[a] = b; } scanf("%d", &a); } printf("Case %d ", kase); kase ++ ; int cnt=0; if(flag3 && a == 0 && b == 0){ printf("is a tree.\n"); }else if(flag){ for(int i = MIN; i <= MAX; ++i){ if(mark[i] && pic[i] == i) { cnt++; } } if(cnt == 1){ printf("is a tree.\n"); }else{ printf("is not a tree.\n"); } }else{ printf("is not a tree.\n"); } } return 0;}
阅读全文
0 0
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 小希的迷宫
- 安装Cocoapods详细教程
- mac 问题处理
- LaTex技巧(五):如何在图形的右方插入统计表格呢?
- Unity-Rigidbody【刚体】组件-Collision Detection碰撞检测模式
- 4321: queue2
- 小希的迷宫.
- 【XSY2472】string KMP 期望DP
- 1000. A-B
- 3、数据结构笔记之三线性表单项链表实现
- mybatis的setting配置
- py-faster-rcnn end2end训练记录
- 浮动
- 8、Symbol数据类型—ES6学习笔记
- Dva React 入门 Demo 篇章 2