随笔分类 - 并查集
摘要:###思路 对于这道题,我们从题目里可以知道,蓝色代表的方块为0,红色代表的方块为1。按照题目要求,如果换一种说法,那就是对于一个2*2的方格,其中1的个数必定有奇数个,这样的话,每个方格里的所 有数的异或和必定为1(00=0 , 10=1 , 1^1=0)。那么对于每一个格子$a(i,j)$,都有
阅读全文
摘要:###思路 一、种类并查集 我们发现对于任意两种动物A和B,他们之间的关系有同类、A吃B和A被B吃这三种可能。这样的话我们考虑对于每一个动物维护三个集合,分别是它的同类集合、它的猎物集合和它的天敌集合。 在考虑某句话是否是假话时,对于前两种假话(自己吃自己和超出范围)都非常好判断。那么对于第三种假话
阅读全文
摘要:###思路 这个题要是数据范围小的话那就可以是黄题或者绿题了。但是,良心的出题人偏偏要把数据范围搞得那么大、、无语…… 这个题就是在把数据离散化之后,在把1的情况全部丢进并查集里,特判关于0的情况即可(这里可以离散化的原因是我们并不需要这些数据的真实大小,只需要知道它们的相对大小即可)。 Code
阅读全文
摘要:###思路 这道题其实操作就是普通并查集的基础合并和查询操作,只是要稍稍思考一下对于 “ 我朋友的朋友是我的朋友,我敌人的敌人也是我的朋友 ” 这两句话的处理方法。 很明显的是,对于第一句话,“我朋友的朋友是我的朋友”,是很好操作的。如果读入数据告诉我们x和y这两个强盗是朋友,那么我们就把x和y所在
阅读全文
摘要:###思路 首先要提一下的就是,这道题有很多种做法,比如说有二分图匹配、并查集、贪心、搜索等等。出于时间原因,我这里只写二分图匹配和并查集写法。 ####一、二分图匹配(匈牙利算法) 这道题的这种做法思路比较难想(但也没有那么困难)。比较容易想到的就是把每个物品的两个属性作为两边的点,然后搞二分图匹
阅读全文
摘要:###思路 这个题表面看好像是一个并查集删点操作,但是并查集貌似并没有类似的操作,只有加点和查询操作。那怎么办呢?这时候逆向思维就显得尤为重要。 我们可以考虑删点操作转化为加点操作。把题目中给出的删点序列逆转,第一次建成的并查集是执行完所有删点操作的并查集,然后按照题目中给出顺序的逆序执行加点操作,
阅读全文

浙公网安备 33010602011771号