POJ1272小希的迷宫(并查集+map)

【POJ1272小希的迷宫(并查集+map)】**思路:**水题一个,不用多考虑,大胆做,做不对来看一眼
需要强调的一个小点就是:
可以用adge==num-1这条语句来判断是否生成了一棵树(一棵树!!!一棵树!!!一棵树!!!)
因为树的定义:边数=点数-1

#include #include #include #include #include #include #include #include #include #include #include using namespace std; int n,m,a,b; int num; int adge; map cun; int fa[100005]; int flag=0; int fin(int x){ if(fa[x]!=x){ return fa[x]=fin(fa[x]); }return x; }void add(int a,int b){ if(!cun[a]){cun[a]=1; num++; } if(!cun[b]){cun[b]=1; num++; } int af=fin(a); int bf=fin(b); if(af==bf)flag=1; else {fa[af]=bf; adge++; } } int main() { while(scanf("%d%d",&a,&b)!=EOF){if(a==b&&a==-1)break; cun.clear(); adge=0; num=0; flag=0; for(int i=1; i<=100003; i++)fa[i]=i; add(a,b); //jiabian; if(a==b&&b==0){ cout<<"Yes"<

    推荐阅读