
主席树
文章平均质量分 77
eeeaaaaa
这个作者很懒,什么都没留下…
展开
-
SPOJ - DQUERY 【主席树】
题意:给出一段序列,然后有q个询问,要求求出下标l-r的出现数的种数。在线方法就可以用主席树,这里T[i]是根据i-n的数建立的线段数,每次更新时,如果当前的数在上一个状态没有出现过,可以直接插入,出现一条新链,如果出现过,应该先把这个数擦出,然后在这个擦除的状态上更新,这样查询的时候就只要查询T[l]这个线段数上1-r的和了,[1,l-1]的和应该是0,因为对于T[l],前面都没有插入到这颗原创 2015-06-26 10:50:43 · 428 阅读 · 0 评论 -
POJ2104 K-th Number【主席树】
题意:给一段序列,还有一些询问,查询l-r中的第k大的数是什么主席树求第K大的板子,维护前缀和,然后作差二分找第k大就是#include#include#includeusing namespace std;const int MAXN=100010;int tot,a[MAXN],n;int vec[MAXN],idx;int c[MAXN*30],lson[MAXN*30原创 2015-06-27 17:02:06 · 430 阅读 · 0 评论 -
spoj Count on a tree【主席树】
题意:给一棵树还有一些询问求从u-v这条路径上点的权值的第K大。我们可以从根开始维护主席树,就相当于以根为起点维护前缀和,这样我们可以求出u-v这条路径上对应点的权值,对u,v求一下lca(最近公共祖先),然后点的权值就是c[u]+c[v]-2*[lca(u,v)],然后同样二分找第k大。#include#include#include#includeusing namespace原创 2015-06-27 17:10:43 · 474 阅读 · 0 评论