[hdu1272] 小希的迷宫
来源:互联网 发布:淘宝卖家差评申诉 编辑:程序博客网 时间:2024/05/21 17:07
题目链接
题解:判断联通无环图
#include <iostream>#include <cstdio>using namespace std;const int MX=100005;int n,m,p,q;int flag,tot;int f[MX+5],rk[MX+5],vis[MX+5];inline int find(int x){ if(f[x]==x) return x; int t=find(f[x]); f[x]=t; return f[x];}inline void ready(){ for(int i=1;i<=MX;i++) f[i]=i,vis[i]=0,rk[i]=0; flag=0;tot=0;}inline void uniom(int p,int q){ int x=find(p),y=find(q); if(x==y) { flag=1;//x==y说明他们是同一个祖先,一旦连通便与祖先3者成环 return ; } //edge++; if(rk[x]>rk[y]) f[y]=x; else { f[x]=y; if(rk[x]==rk[y]) rk[y]++; } }int main(){ while(scanf("%d%d",&p,&q)!=EOF&&p!=-1&&q!=-1){ ready(); if(!p&&!q){ printf("Yes\n"); //为空树 continue; } do { vis[p]=1; vis[q]=1; uniom(p,q); }while(scanf("%d%d",&p,&q)!=EOF&&p&&q); if(!flag) { for(int i=1;i<=MX;i++) { if(vis[i]&&f[i]==i)//if(vis[i]) tot++; //n++; if(tot>1) { flag=1; break; } } } if(flag) //if(flag&&edge==n-1) printf("No\n"); else printf("Yes\n"); } return 0;}
0 0
- HDU1272 小希的迷宫
- hdu1272 小希的迷宫
- hdu1272 小希的迷宫
- hdu1272小希的迷宫
- HDU1272:小希的迷宫
- HDU1272 小希的迷宫
- hdu1272-小希的迷宫
- hdu1272 小希的迷宫
- hdu1272 小希的迷宫
- hdu1272 小希的迷宫
- hdu1272 小希的迷宫
- hdu1272小希的迷宫
- hdu1272 小希的迷宫
- HDU1272 小希的迷宫
- hdu1272- 小希的迷宫
- hdu1272小希的迷宫
- hdu1272小希的迷宫
- hdu1272小希的迷宫
- Spark2.0 协同过滤推荐
- bcp命令详解
- Android Message Learning from MTK
- Ubuntu 13.10: 安装 jdk-版本-linux-位.tar.gz
- 群赛 round#8 解题报告一 (swop,ranwen,easy)
- [hdu1272] 小希的迷宫
- 程序代码优化2
- 牛客网 | 最短子数组练习题
- freebcp (kshell 使用 freebcp 然后调用python,执行insert操作。当DB连接加密时,bcp失败)
- android导入项目出现style错误,menu错误
- 30.Insert Interval-插入区间(容易题)
- 03 代码编辑器-VsCode基础
- Android开发——如何实现RecyclerView通用适配器
- 【C#MVC】搭建.netMVC4工程(二)