主席树
人菜瘾大aaabbbb
这个作者很懒,什么都没留下…
展开
-
SPOJ COT Count on a tree 树上主席树&链上点权第k大
题意: 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),输出节点u到节点v这条链上第k大的点。 思路: 树上主席树,对于树上每一个节点建一个权值线段树,利用lca求出u-->lca-->v这条链,对于这几颗线段树root[u],root[v],root[lca],root[f[lca][0]],利用容斥计算出这条链上的权值线段树,再进行查询。 #inclu...原创 2019-05-01 09:58:27 · 292 阅读 · 0 评论 -
2019ICPC南昌邀请赛网络赛J题 树上主席树&链上边权第k大
裸的树上主席树 需要注意: 1.最后需要查询的部分是:query(1,n,root[l],root[r],root[lca],root[lca],k)) 即l+r的前缀和减去两个lca的前缀和 2.这里的倍增操作,需要使用log数组先预处理出来,否则会超时 #include<bits/stdc++.h> using namespace std; ...原创 2019-06-30 20:05:32 · 194 阅读 · 0 评论 -
SPOJ-DQUERY D-query 主席树——查询区间有多少种数
题意: n个数,q次查询,每次查询 l 到 r 的区间内不相同的数有多少个。 idea: 主席数维护每个叶子节点有几个数出现过。 #include<bits/stdc++.h> using namespace std; const int maxn=30010; struct node{ int l,r; int v; }T[maxn*40]; int cn...原创 2019-07-19 16:53:14 · 383 阅读 · 0 评论