随笔分类 - [C++]数据结构-带权并查集
摘要:题面 "Bzoj" "洛谷" 题解 考虑带权并查集,设$f[i]$表示$i$的父亲($\forall f[i] 1.如果$f[x 1]=f[y]$ 这个时候直接判断$sum[y] sum[x 1]$是否等于$z$就行了。 2.如果$f[x 1]\not= f[y]$ 将$f[y]$的$f$定为$f[
阅读全文
摘要:题面 "Poj" 题解 这里采用并查集的补集。 $x$表示同类集合,$x+n$表示敌人集合,$x+n\times2$表示敌人的敌人集合。 如果当前给出的是一对同类关系,就判断$x$是否吃$y$或者$y$是否吃$x$(冲突)。 如果是真话,就将所有关系连在一起。 反之,如果给出的是一对$x$吃$y$关
阅读全文
摘要:题面 "Poj" 题解 反正只要你判断是否满足区间的奇偶性,假设每一位要么是$1$要么是$0$好了。 假设有$S$的前缀和为$sum[]$,则有: 若$S[l...r]$中有奇数个$1$,则$sum[l 1]$与$sum[r]$不同奇偶;反之,则同奇偶 用一个带权并查集维护,设权值数组$s[i]$表
阅读全文

浙公网安备 33010602011771号