/**
[tree]hdu 1272 小希的迷宫
判断一个图是不是树
1,没有圈 2,edgeNum + 1 == verNum
这题比较坑的是注意空图直接yes
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 100001
int vis[N],f[N];
int a,b,edgeNum = 0,verNum = 0,flag;
int getF(int x)
{
return x == f[x] ? x : getF(f[x]);
}
void cal()
{
++edgeNum;
if(!vis[a])
++verNum;
if(!vis[b])
++verNum;
vis[a] = vis[b] = 1;
if(flag == 0)
return ;
a = getF(a);
b = getF(b);
if(a == b)
{
flag = 0;
return ;
}
f[a] = b;
}
int main()
{
while(scanf("%d%d",&a,&b) == 2 && a
[tree]hdu 1272 小希的迷宫
最新推荐文章于 2020-03-16 17:47:39 发布
该程序用于判断一个图是否为树,条件是无环且边数加一等于顶点数。程序通过并查集实现,包括处理空图的情况,并对输入的边进行连接和合并操作,最后判断是否满足树的特性。
摘要由CSDN通过智能技术生成