并查集
范艺杰
这个作者很懒,什么都没留下…
展开
-
51nod1511 与或式
题目题目链接解题思路首先,一个变量只会至多出现两次。我们将只出现一次的和只出现一种的看作自环,将本身和它的非都出现的看成边,我们发现一个无环连通块是不合法的。用并查集维护连通块的大小和边数即可,当连通块边数不小于点数时,必定有环。复杂度O(n+m)O(n+m)O(n+m)。代码#include <cstdio>#include <algorithm>#include <cstring>#include <vector>using na原创 2021-03-26 11:11:10 · 101 阅读 · 1 评论 -
51nod3061 车
题目题目链接解题思路提一种不需要生成树的解法。我们将询问挂到点上,使用启发式合并的并查集。当询问的两边合并到一起时,我们就得到了答案。整体复杂度O(nlog2n)O(nlog_2n)O(nlog2n)。代码#include <cstdio>#include <algorithm>#include <cstring>#include <vector>using namespace std;const int N = 2e5 + 10原创 2021-03-16 21:59:21 · 2031 阅读 · 9 评论