可持久化数据结构
lsr_yali
中国人寿,你值得拥有
展开
-
POJ2104 k-th number
题意:询问区间[L,R]间的第k大数解:主席树主席树的大致思路是先将所有值离散化到[1,n]然后对于每一个位置i建立一棵权值线段树维护位置[1,i]中的数字出现情况(例如:权值在[1,mid]范围内的数有x个)但是这样空间开销太大,所以我们考虑每一棵线段树每次建树时相对于前面只改变了logn个点,其他点均未改变,所以我们可以直接连上这些未改变的点,新建改变后的结点,这样,空间复杂度从n^2降为nlo原创 2017-02-16 23:01:27 · 157 阅读 · 0 评论 -
SPOJ Count on a tree
题意:给一棵树和点权,查询链上第k大点权解:主席树每个点相对父亲的线段树再加一个点建立主席树,查询的数字出现情况即为t[u]+t[v]-t[lca]-t[fa[lca]]代码#include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<queue> #define For(i,j,k) for(in原创 2017-02-16 23:31:27 · 256 阅读 · 0 评论 -
BZOJ 3932任务查询系统
题意最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi。同一时间可能有多个任务同时执行,它们的优先级可能相同,也可能不同。调度系统会经常向查询系统询问,第Xi秒正在运行的任务中,优先级最小的Ki个任务(即将原创 2017-02-26 10:01:20 · 287 阅读 · 0 评论