E - More is better (并查集)

点击打开链接


Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements. 

Mr Wang selected a room big enough to hold the boys. The boy who are not been chosen has to leave the room immediately. There are 10000000 boys in the room numbered from 1 to 10000000 at the very beginning. After Mr Wang's selection any two of them who are still in this room should be friends (direct or indirect), or there is only one boy left. Given all the direct friend-pairs, you should decide the best way. 
InputThe first line of the input contains an integer n (0 ≤ n ≤ 100 000) - the number of direct friend-pairs. The following n lines each contains a pair of numbers A and B separated by a single space that suggests A and B are direct friends. (A ≠ B, 1 ≤ A, B ≤ 10000000) OutputThe output in one line contains exactly one integer equals to the maximum number of boys Mr Wang may keep. 
Sample Input
4
1 2
3 4
5 6
1 6
4
1 2
3 4
5 6
7 8
Sample Output
4
2


暴力枚举,中间有一小部分的优化

把连在一起的通过join连接在一起然后通过枚举有都少个孩子节点有相同的父亲


Select Code

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;int par[10000005];
void init(int n)
{for(int i=1; i<=10000005; i++)par[i]=i;
}int find(int x)
{if(par[x]==x)return x;elsereturn par[x]=find(par[x]);
}void join(int x, int y)
{int fx=find(x),fy=find(y);if(fx!=fy){par[fx]=fy;}
}
int main()
{int n;while(~scanf("%d",&n)){		if(n==0)			//特判???? {printf("1\n");continue;} init(n);int maxn=0;for(int i=1; i<=n; i++){int a,b;scanf("%d%d",&a,&b);join(a,b);if(max(a,b)>maxn)			//优化 {maxn=max(a,b) ;}				}int sum=0,ans=0;			for(int j=1; j<=maxn; j++){int ans=0;		if(par[j]==j)for(int i=1; i<=maxn; i++){if(find(i)==j)		//find(i)与par[i]不同?? ans++;}sum=max(sum,ans);				}printf("%d\n",sum);		}return 0;
}



转载于:https://www.cnblogs.com/ruruozhenhao/p/7406507.html

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

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

相关文章

c语言pwm调制方式,pwm调制原理同步调制_几种pwm调制方式介绍 - 全文

PWM简介脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术&#xff0c;广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种模拟控制方式&#xff0c;其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置&#xff0c;来…

1003 我要通过! (20 分)

1003 我要通过&#xff01; (20 分) “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件&#xff0c;系统就输出“答案正确”&#xff0c;否则输出“答案错误”。 得到“答案正确”的条件是&#xff1…

POJ 3613 Cow Relays (floyd + 矩阵高速幂)

题目大意&#xff1a; 求刚好经过K条路的最短路 我们知道假设一个矩阵A[i][j] 表示表示 i-j 是否可达 那么 A*AB B[i][j] 就表示 i-j 刚好走过两条路的方法数 那么同理 我们把i-j 的路径长度存到A 中。在A*A的过程中&#xff0c;不断取小的。那么最后得到的也就是i - j 走过…

c语言如何用循环语句一个字一个字的输出,怎样用c语言的for嵌套循环,用·画出泳字,求解,主要是怎样用循环语句打出,在某一行中既有空格又有·...

暗域天堂#include #include #include #include #include using namespace std;int get_character(unsigned char* pc1, unsigned char* pc2){unsigned char buf[100];cin >> buf;*pc1 buf[0];*pc2 buf[1];if (*pc1 {return -2;}if (*pc2 {return -2;}return 0;}void lo…

1004 成绩排名 (20 分)

1004 成绩排名 (20 分) 读入 n&#xff08;>0&#xff09;名学生的姓名、学号、成绩&#xff0c;分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;格式为 第 1 行&#xff1a;正整数 n 第 2 行&#xff1a…

【Sikuli】Sikuli 文档

http://sikulix-2014.readthedocs.io/en/latest/index.html转载于:https://www.cnblogs.com/MasterMonkInTemple/p/7346480.html

c语言赋值运算符左边必须是,C语言运算符入门讲解

概述C 语言运算符分为算术、关系、逻辑、赋值、逗号和 sizeof 5 大类。表达式&#xff1a;在 C/C 中&#xff0c;用运算符将操作对象连接起来就构成了表达式。表达式是用于计算的式子&#xff0c;是计算求值的基本单位。操作对象&#xff1a;又称操作数&#xff0c;操作数可以为…

1005 继续(3n+1)猜想 (25 分)

1005 继续(3n1)猜想 (25 分) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里&#xff0c;情况稍微有些复杂。 当我们验证卡拉兹猜想的时候&#xff0c;为了避免重复计算&#xff0c;可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&#xff0c;我们…

MSYS2使用教程

一、安装 官方下载地址 http://www.msys2.org/ 指定好安装路径&#xff08;一般D根目录即可&#xff09;&#xff0c;一路下一步就好。 二、配置国内镜像、设置窗体修改颜色 使用[清华大学开源软件镜像站]中的地址&#xff0c;修改\etc\pacman.d目录下的三个文件。 配置教程 ht…

c语言mc协议,easymc - C语言开发的简易消息通道库

easymc是一个C语言开发的简易的消息通道库&#xff0c;目前提供请求/回应、订阅/发布两种通信模式&#xff0c;同机器的通信采取IPC方式&#xff0c;跨机的通信采取TCP方式&#xff0c;源码包含开源项目jemalloc库。代码地址&#xff1a;https://github.com/easymc/easymclocal…

1006 换个格式输出整数 (15 分)

1006 换个格式输出整数 (15 分)让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 2…

android 复制字符串,Cocos2dx 复制文本到剪切板(Android 和 ios)

ClipboardManager cm (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);cm.setText(要复制的文本内容);源码分享&#xff1a;Cocos2dxHelper.java 中添加吧import android.content.ClipboardManager; //导入需要的库static public int copyToClipboard(final …

1007 素数对猜想 (20 分)

1007 素数对猜想 (20 分) 让我们定义d ​n ​​ 为&#xff1a;d ​n ​​ p ​n1 ​​ −p ​n ​​ &#xff0c;其中p ​i ​​ 是第i个素数。显然有d ​1 ​​ 1&#xff0c;且对于n>1有d ​n ​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现…

[原创]浅谈移动互联网App兼容性测试

[原创]浅谈移动互联网App兼容性测试 今天要谈的话题&#xff0c;估计各位测试都有感受&#xff0c;移动互联网App兼容性测试&#xff0c;我们到底测试覆盖如何去挑选机型&#xff1f;具体移动App兼容性测试如何开展&#xff1f;是不是应引进像testin这样的第三方来检查覆盖?可…

高仿人人android梦想版终极源码发送,人人Android客户端梦想版发布

人人网梦想版for Android 5.0.1下载(人人网Android客户端)人人网今天发布Android客户端“梦想版”&#xff0c;新版更新的“私信”功能与微信等聊天工具同出一辙&#xff0c;还可以发送语音和大幅表情。其他界面也进行了大幅更新。以下为人人网官方介绍&#xff1a;打开这篇日志…

1008 数组元素循环右移问题 (20 分)

1008 数组元素循环右移问题 (20 分) 一个数组A中存有N&#xff08;>0&#xff09;个整数&#xff0c;在不允许使用另外数组的前提下&#xff0c;将每个整数循环向右移M&#xff08;≥0&#xff09;个位置&#xff0c;即将A中的数据由&#xff08;A ​0 ​​ A ​1 ​​ ⋯A…

JS非空验证

代码如下&#xff1a; <!DOCTYPE html> <html><meta charset"UTF-8"><title></title><head><script language"javascript">function checklogin() {if((myform.user.value ! "")) {if((myform.pwd.va…

android 平板方案,Android平板方案

一、英伟达(NVIDIA) Tegra 2NVIDIA Tegra 2处理器&#xff0c;采用40nm制程制造&#xff0c;集成8个不同功能的处理器&#xff0c;主要包括&#xff1a;两个ARMCortex-A9核心&#xff0c;运行频率1GHz。另外有一个ARM7处理器&#xff0c;一个音频处理器(AudioProcessor)&#x…

1009 说反话 (20 分)

1009 说反话 (20 分) 给定一句英语&#xff0c;要求你编写程序&#xff0c;将句中所有单词的顺序颠倒输出。 输入格式&#xff1a; 测试输入包含一个测试用例&#xff0c;在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成&#xff0c;其中单词是由英文…

1-18Linux内核空间和用户空间

转载请说明出处:http://www.cnblogs.com/zaifeng0108/p/7364411.html OS的接口有两类&#xff1a; GUI&#xff1a;Graphic User Interface GNome&#xff1a;c, gtkKDE: c, qtCLI&#xff1a;Command Line Interface bashzshshcshtcshksh转载于:https://www.cnblogs.com/zaife…