HDU 1856 More is better(并查集+离散化)
题目地址:HDU 1856
水题。因为标号范围太大,而数据数仅仅有10w,所以要先进行离散化。然后就是裸的并查集了。
代码例如以下:
- #include <iostream>
- #include <cstdio>
- #include <string>
- #include <cstring>
- #include <stdlib.h>
- #include <math.h>
- #include <ctype.h>
- #include <queue>
- #include <map>
- #include <set>
- #include <algorithm>
- using namespace std;
- int bin[100001], x[100001], y[100001], z[200001], c[200001], cnt, vis[200000];
- int find1(int x)
- {
- return bin[x]==x?x:bin[x]=find1(bin[x]);
- }
- void merger(int x, int y)
- {
- int f1=find1(bin[x]);
- int f2=find1(bin[y]);
- if(f1!=f2)
- bin[f2]=f1;
- }
- int twofen(int x)
- {
- int high=cnt-1, low=0, mid;
- while(low<=high)
- {
- mid=low+high>>1;
- if(c[mid]==x) return mid;
- else if(c[mid]<x) low=mid+1;
- else high=mid-1;
- }
- }
- int main()
- {
- int n, i, max1, a, b, f1, f2;
- while(scanf("%d",&n)!=EOF)
- {
- cnt=1;
- for(i=0;i<n;i++)
- {
- scanf("%d%d",&x[i],&y[i]);
- z[2*i]=x[i];
- z[2*i+1]=y[i];
- }
- sort(z,z+2*n);
- c[0]=z[0];
- for(i=1;i<2*n;i++)
- {
- if(z[i]!=z[i-1])
- c[cnt++]=z[i];
- }
- for(i=0;i<cnt;i++)
- bin[i]=i;
- for(i=0;i<n;i++)
- {
- f1=twofen(x[i]);
- f2=twofen(y[i]);
- merger(f1,f2);
- }
- memset(vis,0,sizeof(vis));
- max1=-1;
- for(i=0;i<cnt;i++)
- {
- int p=find1(bin[i]);
- vis[p]++;
- if(max1<vis[p])
- max1=vis[p];
- }
- printf("%d\n",max1);
- }
- return 0;
- }
HDU 1856 More is better(并查集+离散化)的更多相关文章
- HDU 1856 More is better (并查集)
题意: 给你两个数代表这两个人是朋友,朋友的朋友还是朋友~~,问这些人组成的集合里面人最多的是多少... 思路: 属于并查集了,我用的是带路径压缩的,一个集合里面所有元素(除了根节点)的父节点都是根节 ...
- HDU 1856 More is better(并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=1856 More is better Time Limit: 5000/1000 MS (Java/Others) ...
- HDU HDU1558 Segment set(并查集+判断线段相交)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1558 解题报告:首先如果两条线段有交点的话,这两条线段在一个集合内,如果a跟b在一个集合内,b跟c在一 ...
- hdu 1257 小希的迷宫 并查集
小希的迷宫 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1272 D ...
- hdu 3635 Dragon Balls(并查集应用)
Problem Description Five hundred years later, the number of dragon balls will increase unexpectedly, ...
- <hdu - 1272> 小希的迷宫 并查集问题 (注意特殊情况)
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 Problem Description: 上次Gardon的迷宫城堡小希玩了很久(见Probl ...
- HDU 4496 D-City(逆向并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=4496 题意: 给出n个顶点m条边的图,每次选择一条边删去,求每次删边后的连通块个数. 思路: 离线处理删边,从后 ...
- HDU 3407.Zjnu Stadium 加权并查集
Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- HDU 1213 - How Many Tables - [并查集模板题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 Today is Ignatius' birthday. He invites a lot of ...
随机推荐
- ifconfig 源码
贴一下ifconfig的源码(它属于net-tool软件包),以备平时查看网络信息的配置. /* * ifconfig This file contains an implementation of ...
- 成功为Android系统配上了GNU开发环境
单击此处获得本文的最新更新 经过一周的艰苦努力,成功为我的小米2手机适配上了全功能的GNU开发环境,完全兼容GNU/LINUX(Android自带的bionic.linker真心不好 ...
- RealThinClient学习(一)
服务端代码: unit RtcHttpServer; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, ...
- [Android学习笔记]SeekBar的使用
一.SeekBar滑动条的使用 xml声明: <SeekBar android:id="@+id/seekbar" android:layout_width="20 ...
- 算法起步之Bellman-Ford算法
原文:算法起步之Bellman-Ford算法 从这篇开始我们开始介绍单源最短路径算法,他是图算法之一,我们前面说的贪心,图的遍历,动态规划都是他的基础,单源最短路径其实说的就是图中节点到节点的最短路径 ...
- Linux查看硬盘使用时间等信息
查看硬盘信息的很多命令,都需要root权限,如果普通用户无法看到信息,请切换至root: 1.查看硬盘使用时间等信息 硬盘使用时间很重要,硬盘理论寿命是3万小时以上 $ sudo smartctl - ...
- HDU 4616 Game (搜索)、(树形dp)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4616 这道题目数据可能比较弱,搜索都可以AC,但是不敢写,哎…… 搜索AC代码: #include & ...
- hdu 5071 Chat(模拟)
题目链接:hdu 5071 Chat 题目大意:模拟题. .. 注意最后说bye的时候仅仅要和讲过话的妹子说再见. 解题思路:用一个map记录每一个等级的妹子讲过多少话以及是否有这个等级的妹子.数组A ...
- adm下载器
netdisk;5.2.7;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia
- hdu2844(多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意:一位同学想要买手表,他有n种硬币,每种硬币已知有num[i]个.已知手表的价钱最多m元,问 ...