#长期填坑# 一个奇怪的静态树上联通块处理技巧

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liutian429073576/article/details/62416347

第二次做CC的那道边上gcd的题目想出来一个奇怪的技巧
可以把理论复杂度从O(nwlogn+q2wlogn)变成O((n+q)wlognw) 在线询问 支持可持久化
空间的话。。貌似有点大大。。和时间复杂度同阶
然而这个是理论复杂度。。。并查集的log和线段树的log根本没法比
听Claris说LCM也可以做 但是这毕竟不能可持久化对吧。。

省选之后再来填坑。。。

哈哈
现在都已经快十月份了 两年前谁能想到Day1翻车之后我就安安心心地去读文化课了呢
其实拖着这么久是有原因的 因为给hackerrank搞了道题 是University Codesprint 3的100分题 因为如果在之前说题解就是泄题了对吧

很久远的记忆了。。因为poor English,题解从3月一直折腾到现在。真的是惨。

先来讲一下cc上面边上gcd吧
原题抽象成 边修改 边联通的块大小询问
这个只需要用线段树维护dfs序上的前缀和 即可
对于每个权值开一个线段树维护
动态开点和动态开线段树
时间复杂度虽然同阶甚至更优,然后死于大常数以及大内存

但是这种方法是在线 可持久化 所以我觉得具有启发意义。
于是就有了这道题的诞生。
题解:
https://www.hackerrank.com/contests/university-codesprint-3/challenges/simple-tree-counting/editorial
大致思想是用DFS序来进行前缀和计算
但是这种方法只适用于贡献可加的计算 对于另一些可能就不行了
然而被一堆dalao直接用LCT爆草。。
TO BE CONTINUED
应该已经完了吧?

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页