
并查集
文章平均质量分 79
WA是一笔财富
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
codeforces 731c Socks 并查集
A - SocksTime Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionArseniy is already grown-up and independent. His mother decided to l原创 2016-11-16 22:53:11 · 395 阅读 · 0 评论 -
CodeForces - 859E Desk Disorder 思维 + 并查集判环
传送门:Codeforces 859E题意:有N个人和2N个座位。告诉你这N个人它们现在的座位。以及它们想去的座位。每个人可以去它们想去的座位或者就坐在原来的座位上。新的座位安排和旧的座位安排,都不允许一个座位被两个人占据的情况。问你新的座位安排的方案数。思路:将整个关系看成一张图,某个人现在的座位以及他想去的座位之间有一条有向边,那么我们可以分析的出这图的几个基本性质:1原创 2017-09-22 12:25:15 · 528 阅读 · 0 评论 -
2015-2016 Northwestern European Regional Contest (NWERC 2015) 补题
C.Cleaning Pipes题意:给出n条管道(线段),任意两个管道之间之多有一个交点,忽略一个管道头部和其他管道的交点,问能否选出一个不相交的管道集合来使得所有交点都被这些管道覆盖。思路:将管道抽象成点,两个管道的交点抽象成边,那么问题转化成判断新建的图是否是一个二分图。判断二分图最常用的方法就是染色法,本题当然也就可以用,然而我看dalao的代码还学了另一种方法:利用并查集判断原创 2017-10-08 23:12:37 · 442 阅读 · 0 评论 -
51nod 1821 最优集合 并查集 || 栈
传送门:51nod 1821题意:中文题。思路:要做这题需要知道一个前提:假设目前集合优美值为now,那么加入一个x(x剩下的就是贪心从b集合里取尽量大的k个数了,每次a集合中的数无法使now继续增大时,就从b集合中取一个尽量大的数,因为每个数只能取一次,取走就相当于没了,因此我们可以用并查集维护下标之间的相邻关系,这也算是经典运用了吧。另外还可以用栈处理贪心的过程:维护一个栈,将原创 2017-08-23 21:13:22 · 251 阅读 · 0 评论 -
Aizu - 2170 Marked Ancestor 并查集好题
传送门:AIZU2170题意:给出一颗树,有两种操作:1. mark u 标记结点u2.query u 询问离u最近的且被标记的祖先结点是哪个让你输出所有询问的和。思路:刚读完题感觉是LCA一类的东西。。想到了离线处理,也想到了按标记和询问的先后搞事情,然后就没思路了。。正解:将所有被标记的结点记录他们最早被标记的时间,然后将所有询问记录下来并倒着处理,因为如果我们原创 2017-07-23 19:43:38 · 484 阅读 · 0 评论 -
POJ 1127 基础计算几何(判断两线段相交)+并查集
传送门:POJ1127题意:给定n条线段和多个询问(a,b),问a和b两个线段是否相交,相交的性质可以传递。思路:相交的传递性可以用并查集来维护,关键是如何判断两个线段是否相交,大白上给出了用向量内积和外积计算的方法,不过比较麻烦,dalao们通用的方法是进行两个判断:1.快速排斥就是初步的判断一下,两条线段是不是相交,以两条线段为对角线的矩形,如果不相交的话,那么两条线段一定原创 2017-07-15 16:03:51 · 1420 阅读 · 3 评论 -
2017浙工大之江学院校赛 H 倍增法LCA||并查集重构树
Problem H: qwb与学姐Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 199 Solved: 69[Submit][Status][Web Board]Descriptionqwb打算向学姐表白,可是学姐已经受够了他的骚扰,于是出了一个题想难住他:已知一幅n个点m条边的无向图,定义路径的值为这条路径上最原创 2017-06-08 17:44:14 · 537 阅读 · 0 评论 -
The Door Problem CodeForces - 776D 并查集||染色法||2-sat
传送门:CodeForces - 776D题意:有n个门和m个开关,每个门由两个开关控制,每个开关可以控制任意多个门,问能否通过操作某些开关使得所有门都打开。(给出门的初始状态)思路:明明有那么多解法,却一个也想不到。。。先分析一下题目,大部分开关问题首先要想到的一点就是任何开关操作两次以上都是无意义的,因此对于每个开关,我们要么操作一次,要么不操作,对于控制的门初始状态为1的两个开关,我原创 2017-04-21 21:49:13 · 548 阅读 · 0 评论 -
The Suspects poj 1611 并查集
传送门:poj 1611题意:有一群人和很多组,每个人可能属于很多组,0号患了传染病,和他一组的人都被列为怀疑对象,和怀疑对象一组的也是怀疑对象。并查集维护就好了,需要注意的是并查集中0号所在的树必定要0号当主根,这样最后才好统计人数。#include #include #include using namespace std;int f[30005];int getf(in原创 2016-11-26 15:28:42 · 272 阅读 · 0 评论 -
Find them, Catch them poj 1703
传送门:poj1703题意:就是有两个帮派,两个帮派之间是敌人关系,然后每次或者告诉你两个人是敌人关系,或者询问两个人的关系是什么(同伙,敌人或者不确定)。这个题要是每次告诉你两个人是同伙那就是个水并查集啊,当时一读到输入的两个人是敌人关系就有点蒙,这该怎么处理啊。。。最终没憋住还是查了题解。。关键点在于开一个数组保存每个人的敌人是谁,这样一来再输入两个人a,b是敌人关系的时候,如果d原创 2016-11-26 12:32:26 · 314 阅读 · 0 评论 -
Fix a Tree codeforces 698B 并查集
Fix a TreeTime Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionA tree is an undirected connected graph without cycles.Let's cons原创 2016-11-18 23:20:25 · 488 阅读 · 0 评论 -
HDU - 4424 Conquer a New Region 并查集好题
题意:给定N个点的树。定义d(u,v)为路径u到v的容量,其值为路径上最小的边权。求一个点作为root,使得其他所有点到该点的容量和最小,求最小值。思路:考虑边权最小的边e,则root一定在其左子树或者右子树上,假设在左子树上,那么e的贡献就是w[e] * sz[rchild] + ans[lchild],然后将最小边去掉,树就被分成了两部分,每一部分都会有一个最小边,这样分治下去就能求出原创 2017-10-02 20:37:18 · 338 阅读 · 4 评论