
并查集
范艺杰
这个作者很懒,什么都没留下…
展开
-
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 · 117 阅读 · 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 · 2061 阅读 · 9 评论