How Many Tables
2015-11-09 20:35
218 查看
How Many Tables
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 19538 Accepted Submission(s): 9714
Problem Description
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.
Input
The 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.
Output
For each test case, just output how many tables Ignatius needs at least. Do NOT print any blanks.
Sample Input
2 5 3 1 2 2 3 4 5 5 1 2 5
Sample Output
2 4
:做完发现这道题和hdu 1232畅通工程是一样的,只是格式不一样,输入数据之间的空行是键盘输入的,需要用一个getchar()接收空行;
#include<iostream> #define Size 1001 using namespace std; int father[Size]; int find(int x){ while(x!=father[x]) x=father[x]; return x; } int merage(int x,int y){ x=find(x); y=find(y); if(x!=y) father[x]=y; } int main() { int T,n,m,i,x,y,s; cin>>T; while(T--){ cin>>n>>m; for(i=1;i<=n;i++) father[i]=i; for(i=0;i<m;i++) { cin>>x>>y; merage(x,y); } s=0; for(i=1;i<=n;i++) if(father[i]==i)s++; cout<<s<<endl; getchar(); } }
相关文章推荐
- 【算法竞赛练习题】提取拼音首字母
- LeetCode---Majority Element II
- Java读取xml文件的四种方法
- JAVA课后作业
- JS 使用 window对象的print方法实现分页打印
- hdu 4689 Derangement(dp)
- oracle参数open_cursors和session_cached_cursor详解!
- Java基础学习24 (interface一)
- 最新 Hadoop 视频分享
- OpenGL_Qt学习笔记之_04(3D图形的绘制和旋转)
- hihocoder #1099 枚举
- 最新 Hadoop 视频分享
- audio和EMBED配合同时兼容IE8和safiri
- OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)
- ASP.NET多文件上传实例
- Context是什么?
- javascript:with的用法以及延长作用域链
- mvc项目问题清单以及解决方法
- NFA-DFA(c++实现代码c#实现画图)
- Java生成MD5字符串