
并查集
文章平均质量分 71
PrimeG
算法学习ing
展开
-
poj1703 Find them, Catch them 基础并查集问题
题意:有龙和蛇两类动物,给出若干信息,信息包括若干个两个编号的动物不是一类的,当输入‘A’时,要输出该两个编号的关系信息。建立2*N并查集,对于‘D’的时候,要把两个编号a和(b+N)连接,b和(a+N)连接,对于每次访问‘A’,当两个编号a,b满足a与b连接的时候为一个类型,a与(b+N)连接为不同类型,都不连接是无法确定。#include#include#inclu原创 2017-03-15 16:19:41 · 324 阅读 · 0 评论 -
POJ 1733 Parity game hash离散化+带权并查集
由于数据范围过大,所以需要进行hash离散处理,然后就是建立并查集,ranks[x]表示节点x到根节点奇偶性,然后每次更新一次权值就好了,输出第一次错的位置。#include#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2017-04-27 22:49:42 · 347 阅读 · 0 评论 -
POJ 1182 食物链
可以建立3*n的并查集,x,x+n,x+2*n分别代表一个食物圈。即若x和y属于一个类别的情况就是x和y连接,(x+n)和(y+n)连接,(x+2*n)和(y+2*n)连接;如果x吃y,那么x和(y+n)连接,(x+n)和(y+2*n)连接,(x+2*n)和y连接。依次连接即可#include#include#include#include#include#include#incl原创 2017-04-26 13:06:49 · 379 阅读 · 0 评论 -
HDU 3038 How Many Answers Are Wrong 带权并查集
用par[x]表示x的根节点,用ranks[x]表示x到根节点的距离,记得每次都要更新一遍ranks数组(题目中没说有多个输入,结果改了好久才发现加上while后瞬间就ac了。。。)#include#include#include#include#include#include#include#include#include#include#include#include原创 2017-04-26 12:37:48 · 243 阅读 · 0 评论 -
HDU1213 How Many Tables 并查集
并查集水题,建立n并查集,然后把认识的人都连起来,最后算一下父亲的数量即可(输入里的空一行是什么鬼。。。)#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x3f3f3原创 2017-04-25 20:12:49 · 245 阅读 · 0 评论 -
POJ1611 The Suspects 并查集
没什么好说的,建立n的并查集,把每个group的人都连起来,最后遍历一遍即可。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x3f3f3f3f#define in原创 2017-04-25 19:51:44 · 309 阅读 · 0 评论 -
poj2236 Wireless Network 简单并查集
题意:有若干台坏的电脑,每个电脑有一个坐标位置,并且在修好后可以与和其距离小于等于d的电脑联系,两台电脑间也可以通过其他电脑间接联系,输入‘O’(此为字母O,刚开始看成数字‘0’,改了好久才发现)后再输入数字即为修复该电脑,输入‘S’后再输入两个数字即为测试该两台电脑是否可以进行联系。建立2*N并查集,当修复了某一台电脑后用新的结构体记录,编号设为x,并对之前修复过的电脑循环操作,某一原创 2017-03-15 15:03:00 · 426 阅读 · 0 评论 -
HDU1272 小希的迷宫 并查集
简单并查集,建立并查集后每次询问是否根节点相同,若连接过程有相同就输出No,最后检验下是否所有的根节点都一样(检测是否都连在一起了),都连在一起就输出Yes,反之输出No。#include#include#include#include#include#include#include#include#include#include#include#include#inc原创 2017-04-28 22:13:34 · 312 阅读 · 0 评论 -
POJ 2912 Rochambeau 并查集+枚举
和食物链那题很像,只要把裁判枚举一遍即可,当前枚举的裁判不参与矛盾判断,没有矛盾的组数为0时,即Inpossible,大于1时就是Can not determine,等于1时是可以确定裁判的,裁判即没有出现矛盾的那一组枚举的人,判断轮数即所有枚举情况中的出现矛盾的最大轮数。#include#include#include#include#include#include#includ原创 2017-04-28 17:30:06 · 350 阅读 · 0 评论 -
aoj2170 Marked Ancestor 简单题
题意:给一棵树,节点是1到n的编号,1是根,最开始被标记,进行若干次询问,每次询问可将某个节点标记,也可以给出节点编号去找离它最近的被标记的编号;输出最后所有寻找的询问中的编号和。利用并查集思想,刚开始节点1设为父亲,之后被标记就把当前节点设为父亲,找最近编号就直接find它的父亲,加到一起输出。#include#include#include#include#in原创 2017-03-15 16:29:23 · 357 阅读 · 0 评论 -
POJ 2492 A Bug's Life 简单并查集
直接建立2*n的并查集,如果x和y没有连着就把(x+n)和y连起来,x和(y+n)连起来,反之就是有错误,一定记住要把数据输完,wa了好久发现这个问题。。。#include#include#include#include#include#include#include#include#include#include#include#include#include#in原创 2017-04-27 23:39:06 · 353 阅读 · 0 评论