并查集-F - How Many Tables
2024-09-06 21:49:40
并查集的模板都能直接套,太简单不注释了,就存个代码
#include<bits/stdc++.h>
using namespace std; const int size = ;
int parent[size];
int cnt[];
int t, n, m, x, y, num; //赋初值
void parentkey(int n){
for(int i=;i<=n;i++){
parent[i] = i;
cnt[i] = ;
}
} //找根节点
int find(int x){
return x==parent[x]? x : parent[x]=find(parent[x]);
} //合并
void parent_union(int x,int y){
int fx = find(x);
int fy = find(y);
parent[fy] = fx;
} int number(int x){
int num = ;
int fx = find(x);
for(int i=;i<size;i++){
if(fx==find(i))
num++;
}
return num;
} int main(){
scanf("%d",&t);
while(t--){
scanf("%d %d",&n ,&m);
parentkey(n);
num = ;
for(int i=; i<m; i++){
scanf("%d %d",&x, &y);
parent_union(x, y);
}
for(int i=; i<=n; i++){
cnt[find(i)]++;
}for(int i=; i<=n; i++)
if(cnt[i])
num ++;
printf("%d\n",num);
} }
最新文章
- [LeetCode] Interleaving String - 交织的字符串
- Music Player团队项目(一)
- VS2012添加ADO实体数据模型
- 命令行创建maven模块工程
- window远程连接linux
- (转)在Java中如何遍历Map对象
- OpenStack - liberty CentOS 7
- JavaScript简史
- python之pickle模块
- 【JavaScript】常用的数据类型的处理方式
- js隐藏字符串中间部分
- c++ map 注意事项
- JAVA_全局配置文件(配置网址,url等等)_第二种方式
- 搭建简单的网络部分(OC)框架
- e867. 获取和设置外观
- CmD空格转义的三种方法,总有一种会解决问题
- 自己写的jQuery拖动滑块
- linux 命令及配置文件搜索命令which、whereis
- xhEditor在线编辑器使用实例
- 开启php的xdebug扩展及phpstorm配置xdebug,chrome调试插件组合