杭电ACM1269——迷宫城堡~~并查集
来源:互联网 发布:13,数据化人生 编辑:程序博客网 时间:2024/05/18 22:44
这题,可以用并查集来解决。需要用到两个数组来判断从i到j以及j到i的是否属于同一个并查集。
下面的是AC的代码:
#include <iostream>#include <cstdio>using namespace std;int par[2][10005];int n, m;int finds(int x, int i){if(x == par[i][x])return x;elsereturn par[i][x] = finds(par[i][x], i);}void join(int x, int y) //并查集合并{if(x != n) //没有包含第n个放间的两个房间,在0和1的地方都要合并,包含n的特殊处理{x = finds(x, 0);y = finds(y, 0);if(x != y)par[0][x] = y;}if(y != n){x = finds(x, 1);int fy = finds(y, 1);if(x != y)par[1][y] = x;}}int main(){int a, b;while(scanf("%d%d", &n, &m) != EOF && m + n != 0){for(int j = 0; j <= n; j++)par[0][j] = par[1][j] = j;for(int i = 0; i < m; i++){scanf("%d%d", &a, &b);join(a, b);}int flag = 0;for(int k = 1; k <= n; k++) //并查集合并之后,都是属于第n个,所以判断是否等于n{if(finds(k, 0) != n || finds(k, 1) != n){flag = 1;break;}}if(flag)cout << "No" << endl;elsecout << "Yes" << endl;}return 0;}
0 0
- 杭电ACM1269——迷宫城堡~~并查集
- 杭电1269迷宫城堡(二维并查集过)
- HDU1269迷宫城堡【并查集】
- hdu1269——迷宫城堡——————【双向并查集判断】
- 杭电1272~~小希的迷宫——并查集判断是否存在环
- 杭电oj1269 迷宫城堡
- 杭电 1269 迷宫城堡
- hdu 1269 迷宫城堡 (并查集)
- HDOJ 题目1269迷宫城堡(并查集)
- 迷宫城堡(并查集,强连通分量)
- 杭电--1272--小希的迷宫--并查集
- 杭电 小希的迷宫 (并查集)
- 杭电1272--小希德迷宫(并查集)
- 杭电 小希的迷宫 并查集
- 并查集——小鑫的城堡
- 小鑫的城堡——并查集
- 小鑫的城堡——并查集
- tarjan算法 杭电迷宫城堡。
- 视频和字幕文件的压制
- yum安装出现This system is not registered with RHN
- 主题模型TopicModel:LDA编程实现
- PowerDesigner生成mysql字段comment 注释
- C/C++中的getline函数总结
- 杭电ACM1269——迷宫城堡~~并查集
- ubuntu学习记录
- 批量修改文件名脚本
- HDU 5072 Hackthon (容斥 同色三角形变形)
- Leetcode Compare Version Numbers
- html css学习笔记-多列
- 黑马程序员——IOS基础---C语言学习之复杂数据类型之其他数据类型
- U盘装系统可以在里面放其他文件吗?
- 【进程管理】进程调度