并查集
左佥都御史
这个作者很懒,什么都没留下…
展开
-
hdu5441 并查集(两种方法)
第一次了解并查集是在krusal求最小生成树,排序边,每次添加最小的并且不能在一个联通快上的边,就用到了他,因为判断是否为一个连通度用常规的写法是很耗费的。而并查集就很轻松。 注意每次有两个连通度变成了一个,就要把他们的值想成并且乘2,这样就是他们相互到达的次数。并且结果可以保存, 因为已经离线化按查询从小到大,所以小的结果可以运用,并且保存了查询的位置,如果某一结果已经到达了终点,那么以后都不原创 2017-06-12 17:06:45 · 256 阅读 · 0 评论 -
POJ2236-并查集
有一群网络,有n个电脑,每个电脑相距距离小于等于d则可以连接。给定下面的操作。 1 如果是‘O’(不是0啊,qwq)那么就修复他 2 如果是 S ,就判断他们是不是连接。 是就是SUCCESS 否则就是FAIL 首先记录一下坐标。 其次,在修复的时候给定他们并查集的初始化,并把距离符合的连接起来, 判断的时候用并查集的find,妥妥的。(注:find注意在后面要合并的时候,合并的是原创 2017-06-24 20:50:37 · 300 阅读 · 0 评论 -
POJ1182-并查集(拆点??)||带权并查集
这道题可以用带权并查集写,但是我觉得很难想到。。 听说是枚举归纳出权值之间的关系(这种权值关系的对应,就算在路径压缩的时候也是可以的) 书上的代码很好。, 但是我写的有点麻烦。。、 x 为x属于a集合, x+m 属于b集合, x+2*m为c集合。。#include <cstdio>#include <cstring>#include <algorithm>#include <iostr原创 2017-06-27 19:28:57 · 252 阅读 · 0 评论 -
Codeforces Round #383 (Div. 2)D-(并查集&分组背包)|(搜索&01背包)
传送门 分组背包模板题。 用并查集搞一搞一齐的关系就好。 然后就是分组背包的模板了,注意,在分组的时候,把i组所有和加起来 这一个虚拟的物品分到 i组里,而不能独立分组,不然会造成某一个模特的的多次使用。。 或者用搜索,这个搜索用滚动数组的时候,类似于树形dp里面,在一个树内进行01背包。 但是在遍历的时候,可能会出现从0数组 转到0数组的情况(1数组先前已经被vis掉了,如果我们不原创 2017-07-08 20:23:02 · 385 阅读 · 0 评论 -
hdu1878-判断欧拉回路-欧拉回路
http://acm.hdu.edu.cn/showproblem.php?pid=1878 主要是好像下一道题就是求 欧拉回路的。。 用dfs判断连通性,或者用并查集都行。 还是研究生复试题,好水。。 看来我考研有希望了qwq 欧拉回路的条件。(就是一笔画问题啦) ① 无向图 一个连通块,所有顶点度数均为偶数。 ② 有向图 所有顶点入度等于出度 欧拉通路(就是画完,并原创 2017-08-30 17:32:17 · 329 阅读 · 0 评论 -
Gym - 101550A-并查集&离线-Artwork
http://codeforces.com/gym/101550/attachments 如图所示。 每次染色,然后问你联通块数有多少。 直接看图就行。 思路:比赛的时候想出来了,但是时间不够了,写了一个开头,本来是写对了,但是我看错了坐标,感觉很麻烦就没写。。 离线处理,然后先记录最后一个的联通块数(有一个空块就+1,联通一次就-1.这样就能得到联通块数)然后依次减去以前的操作,再...原创 2017-11-24 14:05:24 · 308 阅读 · 0 评论