【HDU1272】小希的迷宫(并查集基础题)
仍旧裸敲并查集。有这两点注意:
1.输入 0 0 时候要输出YES
2.留心数组的初始化
- #include <iostream>
- #include <cstring>
- #include <cstdlib>
- #include <cstdio>
- #include <numeric>
- #include <algorithm>
- #include <cctype>
- #include <string>
- using namespace std;
- const int MAXN = ;
- bool flag[MAXN];
- int connectedList[MAXN];
- bool isOk = true;
- int nStart, nEnd;
- void Init() {
- for (int i = ; i < MAXN; ++i) {
- connectedList[i] = i;
- flag[i] = false;
- }
- }
- int getFather(int vetex) {
- int pos = vetex;
- while(pos != connectedList[pos]) {
- pos = connectedList[pos];
- }
- return pos;
- }
- int countListNum() {
- int count = ;
- for (int i = ; i < MAXN; ++i) {
- if (flag[i] == true) {
- if (getFather(i) == i) {
- ++count;
- }
- }
- }
- return count;
- }
- void process() {
- if( getFather(nStart) == getFather(nEnd)) {
- isOk = false;
- return;
- }
- if( getFather(nStart) == nStart && getFather(nEnd) == nEnd) {
- connectedList[nEnd] = nStart;
- } else if(getFather(nStart) == nStart) {
- connectedList[nStart] = getFather(nEnd);
- } else {
- connectedList[nEnd] = getFather(nStart);
- }
- flag[nStart] = true;
- flag[nEnd] = true;
- }
- int main() {
- while(cin >> nStart >> nEnd) {
- if(nStart == - && nEnd == -) break;
- if(nStart || nEnd) {
- isOk = true;
- memset(flag, false , sizeof(flag));
- Init();
- process();
- while(cin >> nStart >> nEnd, nStart || nEnd) {
- if(isOk == true) {
- process();
- }
- }
- if(isOk == true) {
- int count = ;
- count = countListNum();
- if(count > ) {
- isOk = false;
- }
- }
- } else {
- isOk = true;
- }
- if(isOk == false) {
- cout << "No" << endl;
- } else {
- cout << "Yes" << endl;
- }
- }
- return ;
- }
【HDU1272】小希的迷宫(并查集基础题)的更多相关文章
- hdu1272 小希的迷宫(并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 题目: 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) ...
- HDU1272小希的迷宫–并查集
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...
- hdu-1272 小希的迷宫---并查集或者DFS
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 题目大意: Problem Description 上次Gardon的迷宫城堡小希玩了很久(见 ...
- HDU-1272小希的迷宫,并查集?其实不用并查集;
小希的迷宫 ...
- HDU1272 小希的迷宫 并查集
参考网址:http://blog.sina.com.cn/s/blog_6827ac4a0100nyjy.html 解题思路: 由于这里出现的数字不一定连续的数字都会出现,所以设一个mark来标记数字 ...
- hdu1272小希的迷宫(并查集判断回路和是否连通)
传送门 迷宫中不能有回路,还要连通 如果最后集合数是一个那就是连通,否则不联通 要合并的两个顶点在相同集合内,表示出现了回路 输入时注意一下 #include<bits/stdc++.h> ...
- HDU - 1272 小希的迷宫 并查集判断无向环及连通问题 树的性质
小希的迷宫 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一 ...
- 【HDU1231】How Many Tables(并查集基础题)
什么也不用说,并查集裸题,直接盲敲即可. #include <iostream> #include <cstring> #include <cstdlib> #in ...
- HDU 1272 小希的迷宫 并查集
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
随机推荐
- 在CentOS/RHEL 6.5上安装Chromium 谷歌浏览器
之前Google就说了,由于CentOS/RHEL 6已经是过期的系统,所以不再会有Chrome了. 虽然后来由于引起了社区的抗议,从而改口,不再提CentOS/RHEL 6是过期系统了:但是,目前在 ...
- c语言二维数组变色龙之死字的打印
1 #include <stdio.h> #include <stdlib.h> void main() { ][]= { {'#','#','#',' ','#','#',' ...
- Spring 源码解读 推荐流程
Spring源代码解析(一):IOC容器:http://www.javaeye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.ja ...
- Appium 点击Android屏幕
用driver.tap(1, 10, 10, 800); 点击屏幕,经常提示:An unknown server-side error occurred while processing the co ...
- mysql 存储过程:提供查询语句并返回查询执行影响的行数
mysql 存储过程:提供查询语句并返回查询执行影响的行数DELIMITER $$ DROP PROCEDURE IF EXISTS `p_get_select_row_number`$$ CREAT ...
- [RxJS] Combining Streams with CombineLatest
Two streams often need to work together to produce the values you’ll need. This lesson shows how to ...
- FragmentPagerAdapter与FragmentStatePagerAdapter差异
平常使用的FragmentPagerAdapter和FragmentStatePagerAdapter来自android.support.v4.app包用来构建ViewPager. FragmentP ...
- myeclipse自动补全设置
第一步: windows -->preference -->java -->editor -->content Assist --> auto activation -- ...
- CSS基础知识之float
前段时间写过一篇CSS基础知识之position,当时对float的理解不太准确,被慕课网多名读者指出(原文已修正,如有误导实在抱歉).现对float进行更深入的学习,在此把学习心得分享给大家. 浮动 ...
- SqlDbType与DbType这间的转换关系
SqlDbType => DbType SqlDbType.BigInt DbType.Int64 SqlDbType.Binary DbType.Binary SqlDbType.Bit Db ...