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