博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu1272-小希的迷宫
阅读量:5290 次
发布时间:2019-06-14

本文共 1034 字,大约阅读时间需要 3 分钟。

题目链接 

 

解题思路

需要判断图是否连通 且 只有一个连通分量

注意只有0 0的情况。

 

代码

#include
#include
#define SET_SIZE 100010int s[SET_SIZE];bool vis[SET_SIZE];void MakeSet(int n){ for(int i=1; i<=n; i++) s[i] = i;}int FindFather(int x){ if(s[x] != x) s[x] = FindFather(s[x]); return x;}void UnionSet(int fx, int fy){ s[fx] = fy;}int main(){ int x, y; scanf("%d%d", &x, &y); while(!(x == -1 && y == -1)) { bool flag = false; int count = 0; int vNum = 0, edgeNum = 0; MakeSet(SET_SIZE); memset(vis, 0, sizeof(vis)); while(!(x == 0 && y == 0)) { count++; if(!vis[x]) { vNum++; vis[x] = true; } if(!vis[y]) { vNum++; vis[y] = true; } if(!flag) { int fx = FindFather(x); int fy = FindFather(y); if(fx == fy) flag = true; else { UnionSet(fx, fy); edgeNum++; } } scanf("%d%d", &x, &y); } if(count == 0) printf("Yes\n"); else{ if(!flag && vNum == edgeNum + 1) printf("Yes\n"); else printf("No\n"); } scanf("%d%d", &x, &y); } return 0;}

  

转载于:https://www.cnblogs.com/ZengWangli/p/5907899.html

你可能感兴趣的文章
P2789 直线交点数
查看>>
P4432 [COCI2017-2018#2] ZigZag
查看>>
#578. 收集卡片
查看>>
#584. 天天去哪吃
查看>>
P2095 营养膳食
查看>>
#589. 图图的游戏
查看>>
P1353 [USACO08JAN]跑步Running
查看>>
#587. 天天和不可描述
查看>>
P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
查看>>
#10. 三角形的个数
查看>>
P1007 独木桥
查看>>
#592. 投放点的选择
查看>>
#532. 排名
查看>>
P1372 又是毕业季I
查看>>
P1403 [AHOI2005]约数研究
查看>>
#594. 连线交叉
查看>>
P1495 曹冲养猪
查看>>
P1104 生日
查看>>
P2735 电网 Electric Fences
查看>>
重置select2下拉框方法
查看>>