![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DSU
a1214034447
这个作者很懒,什么都没留下…
展开
-
hdu 6430 - DSU on tree(树上启发式合并)
题目链接:点击这里 解题思路: 根据树链剖分将子树分为重儿子和轻儿子。 那么我们的DSU实际是就是这个基础上的暴力了。对于一个子树。因为dfs肯定是先处理完儿子之后再处理父亲。那么我在处理一颗子树的时候如果它是他父亲的重儿子就保留它的结果,对于所有的轻儿子要消除影响。那么对于一颗子树我们每次都只要去暴力它的所有轻儿子就可以了。 时间复杂度: 对于u这个节点,wi是它的祖先,wj是w...原创 2018-08-23 14:50:01 · 293 阅读 · 0 评论 -
ZOJ - 4053(2018 青岛网络赛) - 启发式 + 主席树
题目链接:点击这里 解题思路: 如果我们已经知道区间(l,r)的逆序对值W,现在对m进行标记,l<=m<=r.那么区间就被分为了两块[l,m),(m,r]. 对于新得到的两个子区间,设区间长度小的那个子区间的长度为k,区间标记为rt 那么我们可以利用主席树在O(k*log(k))求出rt逆序对值,那么我们如何得到另一个区间的值呢? 设点i的正贡献为:[1,i-1]大于a...原创 2018-09-17 21:17:55 · 456 阅读 · 0 评论 -
洛谷 P3402 - 可持久化并查集
题目链接:https://www.luogu.org/problemnew/show/P3402 解题思路: 可持久化并查集也就是可持续化线段树 + 并查集 == 主席树 + 并查集 像我们平常做的并查集都是路径压缩,但因为要保证可持续化,所以信息不能改变,所以我们采用启发式合并来合并集合。 启发式合并的树最高深度不会超过log(n)+1。因为深度为2的树需要两个点,那么深度为3的...原创 2019-03-02 21:02:24 · 280 阅读 · 0 评论 -
Gym - 101174F[(DSU)+树状数组]
题目链接:https://vjudge.net/problem/Gym-101174F 解题思路: 其实这题不同启发式合并也可以做,对rank排个序,然后在做个dfs序,把rank值小的先插入树状数组中更新,然后对每个节点查询它的dfs序的区间和就好了。 对于DSU来说就更加无脑了,本来就是"暴力",所以我们直接DSU再加一个树状数组维护前缀和。 最坏时间复杂度就是O(n*log(n...原创 2019-05-05 16:20:46 · 184 阅读 · 0 评论 -
牛客想开了大赛2 题解
题目链接:https://ac.nowcoder.com/acm/contest/907#question A.【六】平面 公式:(n*n+n)/2 + 1,n为直线数目 B.【一】n的约数 枚举质因子和每个质因子的个数,显然个数肯定从多到少。 #include<bits/stdc++.h> typedef long long ll; using namespace ...原创 2019-06-01 17:05:51 · 141 阅读 · 0 评论