HDU(3560)成环,并查集
2024-08-29 06:08:45
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3560
并查集查有几个块,修改了之前我的一个方法(用什么map),直接判断根节点的id是i的个数。
然后成环的判断就是一个筛选,先筛选一个每个节点的度是不是2,要不是的话直接排除(根节点),在查块的时候,进一步查看这个根节点是不是被排除了。
so easy;
#include <stdio.h>
#include <string.h> int father[];
int degree[];
bool vis[]; int Find_Set(int x)
{
if(x!=father[x])
father[x] = Find_Set(father[x]);
return father[x];
} int main()
{
int n,m;
while(scanf("%d%d",&n,&m),n+m)
{
memset(vis,true,sizeof(vis));
memset(degree,,sizeof(degree)); for(int i=;i<n;i++)
father[i] = i; for(int i=;i<m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
degree[x]++;
degree[y]++; int fx,fy;
fx = Find_Set(x);
fy = Find_Set(y);
if(fx!=fy)
{
father[fy] = fx;
}
} for(int i=;i<n;i++)
{
if(degree[i]!=)
vis[Find_Set(i)] = false;
}
int s = ;
int h = ;
for(int i=;i<n;i++)
{
if(Find_Set(i)==i)
{
s++;
if(vis[i])
h++;
}
} printf("%d %d\n",s,h);
} return ;
}
最新文章
- 曲面之美:三星 S6 Edge+
- ldconfig和ldd用法
- android-Okhttp初步使用
- owl-carousel轮播插件的使用
- 7.Knockout.Js(Mapping插件)
- 面向过程MySQL数据库链接操作
- tips [终端]
- js 实现图片压缩并转换成base64(data:image/jpeg;base64)格式
- Httpservlet 获取json对象字符窜
- 一个基于OCV的人肉选取特征点程序
- 用div画三角/矩形/圆
- 23 创建ArcMap启动日志
- jersey 用FastJson替换掉默认的Jackson
- [Android] Android 的singleLine废弃解决
- oracle 数据库、实例、服务名、SID
- FPGA型号解读
- Bitbucket备份恢复
- 360浏览器设置打开默认为chrome极速模式
- Css-浅谈如何将多个inline或inline-block元素垂直居中
- Arduino 101/Genuino101使用-第一篇