可持久化线段树
BrooksBUAA
这个作者很懒,什么都没留下…
展开
-
[BZOJ 2809][Apio2012]dispatching:可持久化线段树|可并堆
点击这里查看原题对于每个忍者被作为管理者的情况,我们需要知道这个忍者管理的忍者中最多能选多少忍者,而要使选的忍者尽可能多,就需要从薪水最低的忍者开始选。 于是可以建立一颗权值线段树,按DFS序将忍者的薪水依次加入,每次求总薪水小于等于k可以选多少忍者。 注意long long,因为这个WA了好几次/* User:Small Language:C++ Problem No.:2809 */ #in原创 2017-05-04 14:33:08 · 397 阅读 · 0 评论 -
[BZOJ 3674]可持久化并查集加强版:可持久化并查集
点击这里查看原题按秩合并,即深度小的根的fa指向深度大的根;如果深度相同,那么随便合并,之后深度+1/* User:Small Language:C++ Problem No.:3674 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=2e5+原创 2017-06-10 11:10:25 · 445 阅读 · 0 评论 -
[BZOJ 3524][Poi2014]Couriers:可持久化线段树
点击这里查看原题主席树,建立权值线段树进行查询/* User:Small Language:C++ Problem No.:3524 */ #include<bits/stdc++.h> #define ll long long using namespace std; const int M=5e5+5; int n,q,cnt,rt[M]; struct no{ int ls,rs,su原创 2017-06-12 17:43:29 · 357 阅读 · 0 评论