HDU1272 小希的迷宫(基础并查集)

杭电的图论题目列表,共计500题,努力刷吧

AC 64ms

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
const int INF = 1e8;
using namespace std;
int father[100010];
bool vis[100010];
int findx(int r)
{
    int i = r,j;
    while(father[r]!=r)
    {
         r=father[r];
    }

    while(father[i]!=r)
    {
        j = father[i];
        father[i] = r;
        i = j;
    }
    return r;
}

bool Merge(int x,int y)
{
    int fx,fy;
    fx=findx(x);
    fy=findx(y);
    if(fx!=fy)
	{
	 father[fx]=fy;
	 return 1;
	}
	else
	return 0;
}
void init()
{
    for(int i=0;i<100010;i++)
		{
		father[i]=i;
		vis[i]=0;
		}
}
int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
	    if(a==-1&&b==-1)
            break;
	    int	flag=1,t=0;
         if(a==0 && b==0)
        {
            puts("Yes");
            continue;
        }
		init();
	    int	num = 0;
		while(1)
		{
		    if(a==0&&b==0) break;
		    if(flag)
            {
			if(!vis[a]) num++;  //num记录点数
			if(!vis[b]) num++;
			vis[a]=1; vis[b]=1;
           if(Merge(a,b)==1)
			  t++;              //t记录边数
            else
                flag = 0;
            }
		   scanf("%d%d",&a,&b);
		}
			if(num-t==1 &&flag == 1)//满足题意的只能是 点数-边数==1
				puts("Yes")
			else
				puts("No");
	}
	return 0;
}

HDU1272 小希的迷宫(基础并查集)

时间: 2024-10-09 17:09:24

HDU1272 小希的迷宫(基础并查集)的相关文章

hdu1272 小希的迷宫 基础并查集

1 #include <iostream> 2 #include <cstdlib> 3 #include <cstdio> 4 #include <algorithm> 5 using namespace std; 6 7 const int M = 100005; 8 int a, b; 9 int father[M]; //记录父节点 10 bool circle; //判断是否存在环 11 bool visit[M]; //用来记录顶点数 12 in

HDU1272 小希的迷宫 (并查集)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 注意问题: 1.不能成环,即每次输入的两个数的根节点不能相同: 2.只有一个迷宫,即根节点数目唯一: 3.注意当只输入"0 0" 时要输出"Yes": 4.状态压缩用递归回栈溢出. 参考代码: #include<stdio.h> int fa[100001]; int find(int u) { int s; s=u; while (fa[u]!=u)

HDU-1272 小希的迷宫 (并查集、判断图是否为树)

Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房 间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走 了回头路).小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路.比如下面的例子,前两个是符合条件的,但是最后

HDU 1272: 小希的迷宫(并查集)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 25010    Accepted Submission(s): 7683 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是

HDU1272:小希的迷宫(并查集)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 67049    Accepted Submission(s): 21037 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 Description: 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也

1272小希的迷宫 【并查集】

Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路).小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路.比如下面的例子,前两个是符合条件的

hdu 1272 小希的迷宫(简单并查集)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31396    Accepted Submission(s): 9726 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是

HDU 1272小希的迷宫(并查集之二)

问题描述: Problem Description 上 次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房 间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走 了回头路).小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路.比如下面的例子

HDOJ1272 小希的迷宫 【并查集】

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23829    Accepted Submission(s): 7314 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是

HDU 1272 小希的迷宫(并查集,判断是否成环)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41583    Accepted Submission(s): 12822 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该