
边带权并查集
bcj
野指针*
这个作者很懒,什么都没留下…
展开
-
True Liars POJ1417(背包 + 并查集 + 路径回溯)
解题思路:1.首先这道题涉及关系问题,考虑使用并查集维护关系.对于a和b,若a说b是诚实人,那么a与b的身份必然相同,如果a是诚实人,那么b也是诚实人;如果a是骗子,那么b也是骗子.反过来,如果a说b是骗子,说明a与b的身份不同.这样我们可以用01边权的并查集维护这些人的关系了.最后我们可以获得一个并查集(森林)2.如果诚实人和骗子的数量一样多,显然我们是无法得知哪个是骗子,哪个是诚实人的.3.对于每棵树,我们可以枚举这棵树中一个人的身份,如果最后得到的合法的方案只有一种,那么有解,反之无...原创 2022-04-26 09:00:07 · 323 阅读 · 0 评论 -
AcWing 258. 石头剪子布
修正:判断裁判的条件应该是,在合并集合的时候,不要把裁判加进去,看一下除了裁判以外的人是否产生矛盾,如果产生矛盾,那么这个小孩子就不能作为裁判.#include <bits/stdc++.h>// #define LOCAL#define INF 0x3f3f3f3f3f3f3f3f#define IOS ios::sync_with_stdio(false), cin.tie(0)#define int long long#define debug(a) cerr...原创 2022-03-13 22:41:16 · 276 阅读 · 0 评论 -
AcWing 257. 关押罪犯(带权并查集)
#include <bits/stdc++.h>// #define LOCAL#define INF 0x3f3f3f3f3f3f3f3f#define IOS ios::sync_with_stdio(false), cin.tie(0)#define int long long#define debug(a) cerr << #a << "=" << a << endl;using namespace std;con...原创 2022-03-13 13:49:32 · 783 阅读 · 0 评论 -
AcWing239.奇偶游戏 边带权和拓展域并查集
我们可以观察到这样的一个性质:若[l-1, r]中1的个数为偶数,则s[l-1]与s[r]的奇偶性相同,否则s[l-1]与s[r]的奇偶性肯定不同.并且我们发现,对于3个不同的节点x1,x2,x3,如果x1与x2,x2与x3的奇偶性相同,那么x1与x3的奇偶性相同;如果x1与x2,x2与x3的奇偶性都不相同,那么x1与x3的奇偶性相同;如果x1与x2奇偶性相同,x2与x3的奇偶性不同,那么x1与x3的奇偶性不同.这本质上就是异或运算,要快速查询任意两个节点x,y的奇偶性,我们可以使用并查集.因为并查集很..原创 2022-03-06 10:39:15 · 4618 阅读 · 0 评论