HDU 1213 How Many Tables【并查集】

解题思路:和畅通工程类似,问最后还剩下几个不连通的区域。

How Many Tables

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15086    Accepted Submission(s): 7364

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
Author
Ignatius.L
#include<stdio.h>
int pre[1005];
int find(int root)
{ return root == pre[root] ? root : pre[root] = find(pre[root]); }void unionroot(int root1,int root2)
{int x,y;x=find(root1);y=find(root2);if(x!=y);pre[x]=y;}int main()
{int i,ncase,n,m,tmp,root1,root2,x,y;scanf("%d",&ncase);while(ncase--){tmp=0;scanf("%d %d",&n,&m);for(i=1;i<=n;i++)pre[i]=i;while(m--){scanf("%d %d",&root1,&root2);x=find(root1);y=find(root2);unionroot(x,y);	}for(i=1;i<=n;i++){if(pre[i]==i)tmp++;	}printf("%d\n",tmp);}
}

  

转载于:https://www.cnblogs.com/wuyuewoniu/p/4200268.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1799. N 次操作后的最大分数和(回溯 / 状态压缩DP)

文章目录1. 题目2. 解题2.1 错误解2.2 回溯超时解2.3 回溯通过2.4 状态压缩DP1. 题目 给你 nums &#xff0c;它是一个大小为 2 * n 的正整数数组。 你必须对这个数组执行 n 次操作。 在第 i 次操作时&#xff08;操作编号从 1 开始&#xff09;&#xff0c;你需要&#xff1…

pytorch argmax_轻松学Pytorch使用ResNet50实现图像分类

点击上方蓝字关注我们微信公众号&#xff1a;OpenCV学堂关注获取更多计算机视觉与深度学习知识Hello大家好&#xff0c;这篇文章给大家详细介绍一下pytorch中最重要的组件torchvision&#xff0c;它包含了常见的数据集、模型架构与预训练模型权重文件、常见图像变换、计算机视觉…

linux查看某进程cpu使用情况,linux中如何查看进程对应的cpu使用情况?

empty与isset的一点使用体会刚在做表单提交的时候,我想检验一下数据是否存在,并用var_dump函数看一下数据.首先看使用isset()的代码 //登录函数 function login(){ if(!isset($_POST) ...ASPxTreeList控件去根节点的新增修改操作(写在onCommandColumnButtonInitialize&lpar…

如何通过PHP将excel的数据导入MySQL中

在开发PHP程序时&#xff0c;很多时候我们会有将数据批量导入数据库的需求&#xff0c;如学生信息批量添加到数据库中&#xff0c;而事先用excel编排好&#xff0c;对excel实行操作&#xff0c;便是我们比较常用的选择方式。 在对excel的操作中&#xff0c;phpExcelReade便是很…

LeetCode 1800. 最大升序子数组和

文章目录1. 题目2. 解题1. 题目 给你一个正整数组成的数组 nums &#xff0c;返回 nums 中一个 升序 子数组的最大可能元素和。 子数组是数组中的一个连续数字序列。 已知子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;若对所有 i&#xff08;l < i < r&a…

html使用js的变量_2、温故而知新,再学一遍JavaScript-html中如何使用JS

温故而知新&#xff0c;再学一遍JavaScripthtml中使用JavaScript有两种方式&#xff1a;通过中使用src属性引入外部JS文件,同时又在其内部嵌入JavaScript 代码&#xff0c;则嵌入的代码会被忽略。关于”字符串当浏览器遇到字符串""时就会认为代码块已经结束&#xff…

修改字段类型_PostgreSQL 关于字段类型的修改 谣言与止谣

​PostgreSQL 在9.2 之前是要面临一个指责&#xff0c;就是在更改字段类型的时候带来的不堪&#xff0c;假象你有100万行的数据&#xff0c;其中一个字段是varchar(20) ,你想将其更改为 varhcar(30), 这可能就要造成一个灾难&#xff0c;熟悉postgresql 原理的人们&#xff0c;…

用户 'IIS APPPOOL\***' 登录失败(转载)

用户 IIS APPPOOL\DefaultAppPool 登录失败。 我在windows8中安装了iis之后添加了我做的网站打开之后提示用户 IIS APPPOOL\DefaultAppPool 登录失败。 我再vs2010中能正常运行 最佳答案 这是设置iis应用程序池的设置问题。我就遇到了这样的问题。 比如我的网站取名myweb…

完全相同的4个小矩形如图所示放置_吸睛!矩形在PPT中的创意表现

如何在PPT中表现出光效来&#xff1f;这是很多人在制作PPT时都可能会面临的问题&#xff0c;大多数人的常规做法就是在许多素材网站中直接寻找&#xff0c;比如在花瓣中直接搜索"光效"&#xff0c;我们可以得到以下结果&#xff1a;这些光效PNG文件可以直接用在我们的…

LeetCode 1801. 积压订单中的订单总数(map)

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 orders &#xff0c;其中每个 orders[i] [pricei, amounti, orderTypei] 表示有 amounti 笔类型为 orderTypei 、价格为 pricei 的订单。 订单类型 orderTypei 可以分为两种&#xff1a; 0 表示这是一批采购订单 buy1 …

quantaxis 云服务器_量化金融策略开源框架:QUANTAXIS

简介&#xff1a; QUANTAXIS量化金融策略框架,是一个面向中小型策略团队的量化分析解决方案&#xff0c;是一个从数据爬取、清洗存储、分析回测、可视化、交易复盘的本地一站式解决方案。QUANTAXIS量化金融策略框架,是一个面向中小型策略团队的量化分析解决方案&#xff0c;是一…

linux 中文 音乐播放器,linux下的常见音乐播放器

xmms老牌的音乐播放器&#xff0c;模仿Windows下*的播放器Winamp&#xff0c;其强大的功能不输于Winamp&#xff0c;具有极强的可扩展性&#xff0c;支持mp3、ogg、wav等格式播放&#xff0c;添加插件后还可以播放AAC、wma等格式。缺点&#xff1a;没有曲库功能&#xff0c;不支…

listrecord根据某个属性去重_去哪网开发实战记录(9):城市选择页(中)

兄弟组件之间的联动所谓的兄弟组件之间的联动&#xff0c;其实就是实现点击右侧的字母就能跳转至对应的首字母城市&#xff0c;因此列表组件需要知道右侧的字母列表的点击事件所对应的元素字母&#xff0c;这就需要兄弟组件间的数据传递了(Alphabet组件与List组件之间的通信)&a…

Windows Store App 获取文件及文件夹列表

通过使用13.2.1小节给出的方法和属性&#xff0c;不仅可以对用户库中的文件和文件夹进行操作&#xff0c;还可以获取其中所有的文件或者文件夹&#xff0c;比如为了完整地展现整个音乐库&#xff0c;可以获取并列举出音乐库中所有的音乐文件&#xff0c;以便能够在应用程序中浏…

写接口是什么意思啊_科普贴:果汁包装上写NFC到底是什么意思?

比起水果&#xff0c;果汁省去了繁杂的处理步骤&#xff0c;选对了能更快地补充营养。今天麦德龙美厨课堂就为大家推荐METRO Chef NFC100%果汁系列&#xff0c;给你真材实料、原汁原味的营养美味。NFC果汁&#xff1a;真材实料 原汁原味如今果汁饮品市场上品类繁杂&#xff0c;…

LeetCode 1802. 有界数组中指定下标处的最大值(思维题)

文章目录1. 题目2. 解题1. 题目 给你三个正整数 n、index 和 maxSum 。 你需要构造一个同时满足下述所有条件的数组 nums&#xff08;下标 从 0 开始 计数&#xff09;&#xff1a; nums.length nnums[i] 是 正整数 &#xff0c;其中 0 < i < nabs(nums[i] - nums[i1]…

Linux单用户能做什么,Linux单用户模式详解 及应用场景

一、单用户模式简介二、进入单用户模式修改密码1、Centos6进入单用户修改密码1、重启系统&#xff0c;进入系统欢迎界面按上下左右键进入GRUB界面&#xff1b;2、在GRUB界面选择内核版本&#xff0c;按下e键&#xff1b;3、在此界面可以进行编辑&#xff0c;在最后输入single再…

要开始做笔记总结

今天开始写博客恩!很多知识点需要总结归纳,细细梳理! 好吧,把该掌握的知识总结!转载于:https://www.cnblogs.com/navychang/p/4215663.html

简单阻容降压电路图_升压降压芯片电路

升压与降压一般是指电源电路的工作模式&#xff0c;有些电源IC可以同时支持升压和降压模式。降压模式——Bust mode&#xff0c;这个大家比较熟悉的&#xff0c;用的也比较多&#xff0c;比如5V-》3.3V稳压&#xff0c;对应的芯片很多大家上网搜一下就有了&#xff0c;有LDO模式…

python po设计模式_Python Selenium设计模式 - PO设计模式

整理一下python selenium自动化测试实践中使用较多的po设计模式。为什么要用PO基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务。只需要定位到元素&#xff0c;执行对应元素的操作即可。下面我们看一下这个简单的脚本实现百度搜索。从上述代码来看&…