题目大意:给出一个森林,每个节点都有一个权值。有若干加边操作,问两点之间路径上的第k小权值是多少。
思路:这题和COT1比较像,但是多了连接操作。这样就只能暴力合并连个树。启发式合并会保证时间复杂度不至于太大。然后就是用可持久化线段树维护一个树的信息,按照dfs序来建树,每个节点的可持久化链的参考版本就是它父亲的版本。之后利用权值线段树可区间加减的特性,用f[x] + f[y] - f[...
分类:
其他好文 时间:
2014-10-21 10:26:39
阅读次数:
265
题目大意:给定一棵森林,每个点有权值,提供两种操作:
1.查询两点间路径上第k小的权值
2.将两个点之间连一条边 保证连接后仍是一座森林
可持久化线段树部分同Count On A Tree 只是这道题加了个连接操作
对于连接操作我们要用到启发式合并 就是把小的那棵树暴力重建 很简单的一个操作但是可以证明是均摊O(nlogn)的
大小我用了并查集 其实记录根就可以了
此外本题的多组数据是...
分类:
其他好文 时间:
2014-10-20 13:36:39
阅读次数:
291
/************************************************************** Problem: 3203 User: wangyucheng Language: C++ Result: Accepted Time:344...
分类:
其他好文 时间:
2014-07-03 18:50:41
阅读次数:
212
【原题】
3198: [Sdoi2013]spring
Time Limit: 40 Sec Memory Limit: 256 MB
Submit: 253 Solved: 95
Description
Input
Output
Sample Input
3 3
1 2 3 4 5 6
1 2 3 0 0 0
...
分类:
编程语言 时间:
2014-05-22 09:50:42
阅读次数:
394