博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
How Many Tables
阅读量:4986 次
发布时间:2019-06-12

本文共 927 字,大约阅读时间需要 3 分钟。

链接

[]

题意

n个人参加宴席,有m个信息表示a与b认识,认识有传递性,

问最后该安排多少卓使得只有相互认识的在一起吃饭。

分析

裸的带路径压缩的并查集

代码

#include
#include
using namespace std;int n,m;int f[1010];int r[1010];void init(){ for(int i=1;i<=n;i++) f[i]=i;}void k(){ for(int i=1;i<=n;i++) r[i]=1;}int find(int x){ if(f[x]==x) return x; else{ f[x]=find(f[x]); return f[x]; }}void unionSet(int x, int y) { if ((x = find(x)) == (y = find(y))) return; if (r[x] > r[y]) f[y] = x; else { f[x] = y; if (r[x] == r[y]) r[y]++; }}int main(){ int T,a,b; //freopen("in.txt","r",stdin); cin>>T; while(T--){ cin>>n>>m; init(); k(); for(int i=1;i<=m;i++){ cin>>a>>b; unionSet(a,b); } int sum=0; for(int i=1;i<=n;i++) if(f[i]==i) sum++; cout<
<

转载于:https://www.cnblogs.com/mch5201314/p/10324789.html

你可能感兴趣的文章
1370:最小函数值
查看>>
windows服务和一般win程序打包安装
查看>>
Sublime Text web开发神器
查看>>
linux sudo 系统环境变量 用户环境变量
查看>>
Java语法基础(1)
查看>>
;(function(){ //代码})(); 自执行函数开头为什么要加;或者!
查看>>
201521123096《Java程序设计》第十三周学习总结
查看>>
Asp.Net WebApi 调试利器“单元测试”
查看>>
【luogu P1082 同余方程】 题解
查看>>
数据结构 | 哈希表二次探查法 : 1078
查看>>
纯css实现DIV以及图片水平垂直居中兼容多种浏览器(实现过程)
查看>>
[转载]记不住ASP.NET页面生命周期的苦恼
查看>>
Oracle GoldenGate 二、配置和使用
查看>>
第六次作业
查看>>
Primes on Interval(二分 + 素数打表)
查看>>
百度之星B题(组合数)
查看>>
利用zabbix api添加、删除、禁用主机
查看>>
从头到尾彻底理解KMP
查看>>
字符等价关系
查看>>
Java内存泄露监控工具:JVM监控工具介绍【转】
查看>>