将两个数据结构合并时,应将小的数据结构中的元素一个一个分别插入大的数据结构。 ...
分类:
其他好文 时间:
2018-10-29 19:55:11
阅读次数:
145
删边转化为加边 然后每次用线段树合并就行..... 确确实实很简单 然而为什么线段树合并跑不过$splay$的启发式合并,常数稍大了点... 复杂度$O(n \log n)$ ...
分类:
其他好文 时间:
2018-10-25 00:11:38
阅读次数:
190
今天考崩了,第一题过了大样例就没关了,少考虑了一种情况,直接砍了一半的分,第二题想成了启发式合并,结果后来发现自己实现有问题,搞了很久搞不出来,然后今天就GG了; 第一题: 将P按X为第一关键字,将Q按Y为第一关键字排序,我们扫描P确定最小的X,用线段树维护Q做删除,当前删了k个,相当于在Q上查询第 ...
分类:
其他好文 时间:
2018-10-10 17:52:10
阅读次数:
194
https://www.luogu.org/problemnew/show/P4755 考虑分治,在 [l, r] 区间中用线段树找到最大的一个点,处理经过它的可行数对的个数,统计个数可以离线树状数组处理 因为最多被分成 2n 个区间(像线段树一样),对于每个区间使用类似于启发式合并的思想将要处理的 ...
分类:
其他好文 时间:
2018-09-27 13:13:19
阅读次数:
170
这道题一看就是可持久化并查集 然后我就愉快的yy了一波 还是错掉了qwqwqwqwq 方法是对的 就是我每次在树上查询$fa$的时候我还压缩了路径 导致这玩意空间炸掉了 所以要保证时间复杂度 就启发式合并 也就是$size$小的往$size$大的搞 这样子就保证每次合并的时候连通块元素个数每次至少乘 ...
分类:
其他好文 时间:
2018-09-22 19:55:13
阅读次数:
160
题解: 可持久化并查集(今天早上现学习YY的, 启发式合并logN, 就不用路径压缩了, 不然会要N*logN*logN的空间) #include<bits/stdc++.h> using namespace std; const int M = 100005; int n, m; struct N ...
分类:
其他好文 时间:
2018-09-22 19:54:34
阅读次数:
230
推荐博客 : https://blog.csdn.net/zjznku/article/details/65937416 其实启发式合并核心思想就是将小的集合合并到大的集合上面 例题 : HDU 4358 求一颗树上以每个点为子树中权值出现 k 次的个数有多少个 ...
分类:
其他好文 时间:
2018-09-22 12:59:51
阅读次数:
213
题目:http://codeforces.com/contest/600/problem/E 看博客:https://blog.csdn.net/blue_kid/article/details/82192641 https://blog.csdn.net/clove_unique/article/ ...
分类:
其他好文 时间:
2018-09-22 01:03:18
阅读次数:
271
DSU on tree,树上启发式合并,用于解决无修改子树信息统计问题,若合并操作为O(1)时,时间复杂度为O(NlogN) ...
分类:
其他好文 时间:
2018-08-31 00:34:20
阅读次数:
138
Disjoint Set Union On Tree ,似乎是来自 Codeforces 的一种新操作,似乎被叫做“树上启发式合并”。 在 不带修改的有根树子树信息统计 问题中,似乎树上莫队和这个 DSU On Tree 是两类常规操作。 先对树按轻重链剖分。对于每个节点,先计算轻儿子为根的子树信息 ...
分类:
其他好文 时间:
2018-08-27 21:57:39
阅读次数:
573