主席树
DZYO
Never stop
展开
-
bzoj3524: [Poi2014]Couriers(主席树)
Description给一个长度为n的序列a。1≤a[i]≤n。 m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。Input第一行两个数n,m。 第二行n个数,a[i]。 接下来m行,每行两个数l,r,表示询问[l,r]这个区间。Outputm行,每行对应一个答案。Sample Input7 5 1 1 3原创 2017-04-06 15:50:49 · 419 阅读 · 0 评论 -
bzoj2588:Spoj 10628. Count on a tree(树套主席树)
Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。 第二行有N个整数,其中第i个整数表示点i的权值。 后面N-1行每行两个整数(x,y),表示点x到点y有一条边。 最后M行每行两个整数(原创 2017-04-06 21:41:45 · 290 阅读 · 0 评论 -
BZOJ3673,3694:可持久化并查集(Rope/主席树)
BZOJ3673 BZOJ3674用可持续化数据结构维护祖先。注意的是路径压缩的复杂度是错的,要写按秩合并。写BZOJ3673时: Rope真好用啊!!又是一道1KB题目。写BZOJ3674时: 沃日怎么一直RE?? 要了数据,跑了20s,果然O(nn√logn)O(n\sqrt{n}\log n)的复杂度水不过去。然而没有卡路径压缩,改成路径压缩之后过了。写了主席树0.1s过。。以后还是主原创 2017-12-18 10:46:26 · 476 阅读 · 0 评论 -
LOJ#6032. 「雅礼集训 2017 Day2」水箱 (主席树)
传送门 题解: 考虑最高木板,如果最终水位高于这个高度,那么全部都高于这个高度,枚举最终高度,用主席树快速查询贡献。 否则转化为子问题递归解决。 #include <bits/stdc++.h> using namespace std; typedef pair <int,int> pii; const int RLEN=1<<18|1; inl...原创 2018-05-30 20:31:07 · 629 阅读 · 0 评论 -
Codechef :Fibonacci Numbers on Tree/FIBTREE(主席树)
传送门 题解: 这道题用二次剩余或者矩阵都可以做。 相当于链剖之后维护一个区间加等比数列的可持久化线段树。 因为比相同,所以很好维护。 #include &lt;bits/stdc++.h&gt; using namespace std; typedef long long LL; const int RLEN=1&lt;&lt;18|1; inline char nc() { static ...原创 2018-10-11 08:41:37 · 230 阅读 · 0 评论