我是靠谱客的博主 坦率学姐,最近开发中收集的这篇文章主要介绍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)u=fa[u];
while (fa[s]!=s){fa[s]=u;s=fa[s];}
return u;
}
int main()
{
int u,v,x,y,n,m,i,k;
bool bo;
scanf("%d%d",&u,&v);
while (u!=-1)
{
if (u!=0)
{
for (i=1;i<=100000;i++) fa[i]=i;
bo=true;
while (u)
{
x=find(u);y=find(v);
if (x==y) {bo=false;}
else fa[x]=y;
scanf("%d%d",&u,&v);
}
if (!bo) printf("Non");
int j;
if(bo)
{
for (i=1;i<=100000;i++)
if (find(i)!=i) break;
for (j=i+1;j<=100000;j++)
if ((find(j)!=j)&&(find(j)!=find(i)))
{
printf("Non");
bo=false;
break;
}
}
if (bo) printf("Yesn");
}
else printf("Yesn");
scanf("%d%d",&u,&v);
}
return 0;
}<strong>
</strong>

同类题请参考:http://blog.csdn.net/yzj577/article/category/2432227


最后

以上就是坦率学姐为你收集整理的HDU1272 小希的迷宫 (并查集)的全部内容,希望文章能够帮你解决HDU1272 小希的迷宫 (并查集)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部