题目大意:查询树上两点之间的第k大的点权。
思路:树套树,其实是正常的树套一个可持久化线段树。因为利用权值线段树可以求区间第k大,然后再应用可持久化线段树的思想,可以做到区间减法。详见代码。
CODE:
#include
#include
#include
#include
#define MAX 100010
#define NIL (tree[0])
usin...
分类:
其他好文 时间:
2014-10-14 19:41:19
阅读次数:
153
题目大意:有一些位置,这些位置上可以放若干个数字。现在有两种操作。
1.在区间l到r上添加一个数字x
2.求出l到r上的第k大的数字是什么
思路:这种题一看就是树套树,关键是怎么套,怎么写。(话说我也不会来着。。)最容易想到的方法就是区间线段树套一个权值线段树,但是区间线段树上的标记就会变得异常复杂。所以我们就反过来套,用权值线段树套区间线段树。这样修改操作在外线段树上就变成了单点修...
分类:
其他好文 时间:
2014-10-09 16:50:48
阅读次数:
239