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

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

Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know each other, and all the friends do not want to stay with strangers.

One important rule for this problem is that if I tell you A knows B, and B knows C, that means A, B, C know each other, so they can stay in one table.
For example: If I tell you A knows B, B knows C, and D knows E, so A, B, C can stay in one table, and D, E have to stay in the other one. So Ignatius needs 2 tables at least.
InputThe input starts with an integer T(1<=T<=25) which indicate the number of test cases. Then T test cases follow. Each test case starts with two integers N and M(1<=N,M<=1000). N indicates the number of friends, the friends are marked from 1 to N. Then M lines follow. Each line consists of two integers A and B(A!=B), that means friend A and friend B know each other. There will be a blank line between two cases.
OutputFor each test case, just output how many tables Ignatius needs at least. Do NOT print any blanks.
Sample Input

25 31 22 34 55 12 5

Sample Output

24
1 #include 
2 3 using namespace std; 4 5 int fa[1100]; 6 7 int find(int x){ 8 if(fa[x] == x) 9 return x;10 fa[x] = find(fa[x]);11 return fa[x];12 }13 14 int uni(int x, int y){15 int xx = find(x);16 int yy = find(y);17 if(xx > yy){18 fa[xx] = yy;19 }else if(xx < yy){20 fa[yy] = xx;21 }22 }23 24 int main(){25 int n;26 cin >> n;27 while(n--){28 int n, m;29 cin >> n >> m;30 for(int i = 1; i <= 1000; i++){31 fa[i] = i;32 }33 for(int i = 0; i < m; i++){34 int x, y;35 cin >> x >> y;36 uni(x, y);37 }38 int ans = 0;39 for(int i = 1; i <= n; i++){40 if(fa[i] == i)41 ans++;42 }43 cout << ans << endl;44 }45 }

 

转载于:https://www.cnblogs.com/jxust-jiege666/p/6748385.html

你可能感兴趣的文章
English,The Da Vinci Code,Chapter 8
查看>>
瘦AP转胖AP
查看>>
js 中const ,var ,let区别
查看>>
Android 子线程请求ASP.NET后台
查看>>
Python第一个入门程序
查看>>
java模拟http请求
查看>>
iOS开发之蓝牙通讯
查看>>
一步一步教你简单完成 Android USB开发
查看>>
Flutter 34: 图解自定义 View 之 Canvas (一)
查看>>
Swift - 使用下划线(_)来分隔数值中的数字
查看>>
代码面试最常用的10大算法(三)
查看>>
《Cracking the Coding Interview》——第14章:Java——题目2
查看>>
Careercup - Facebook面试题 - 5729456584916992
查看>>
Java注解基本原理
查看>>
如何使用Visual Studio 2008(VS2008)编译C语言
查看>>
fullPage.js
查看>>
个人作业3-(Alpha阶段)
查看>>
phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法
查看>>
System.Web.HttpException: 响应在此上下文中不可用
查看>>
zookeeper 常用命令
查看>>