概述
题目链接: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 小希的迷宫 (并查集)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复