主席树
Master.Yi
学习他人,提升自己;
提升自己,帮助他人。
展开
-
NOI模拟赛20200102 T3 卡空间二维数点 + 被矩形覆盖次数【KD树 + 主席树】
题目描述:n,m,q≤105n,m,q\le10^5n,m,q≤105 时间限制3s,空间限制256M题目分析:(罪恶王冠加深了题目的自闭氛围。。。 )操作3好说,就一个主席树预处理,把矩形拆成两条竖直的线差分,单点查询。(也可以拆成四个点差分)。只是注意离散化的时候要将矩形的x0-1也要加入离散化数组中(lower_bound时要用到),还有主席树的区间修改的空间复杂度一次可以达到4×...原创 2020-01-03 23:03:49 · 146 阅读 · 0 评论 -
BZOJ 4026: dC Loves Number Theory 【主席树二维数点】
题目传送门题目分析:ans[l,r]=[l,r]ans[l,r]=[l,r]ans[l,r]=[l,r]区间乘积∗∏p出现在区间中的质因数中p−1p*\prod_{p出现在区间中的质因数中}\frac {p-1}{p}∗∏p出现在区间中的质因数中pp−1对于这种出现过就加入的贡献,我们发现不能直接用原来的前缀和+差分的思路,对于这种问题有一个套路:对于iii位置分出的一个质因数ppp,...原创 2019-03-20 12:52:15 · 408 阅读 · 0 评论 -
BZOJ 4012: [HNOI2015]开店 【主席树区间修改+树剖维护路径和】
题目分析:dalao博客把距离看成dep[u]+dep[v]−2∗dep[lca]dep[u]+dep[v]-2*dep[lca]dep[u]+dep[v]−2∗dep[lca]求dep[lca]dep[lca]dep[lca]的时候就用v点在路径上打标记,u点向上统计到根的路径和(似乎是lca的老套路?)路径就用树链剖分+线段树维护由于对v点有区间限制,所以把线段树换成主席树就好了。...原创 2019-03-20 16:59:41 · 203 阅读 · 0 评论 -
BZOJ 3065: 带插入区间K小值 【替罪羊树套线段树】
题目分析:显然孤零零的线段树并不能支持插入之后的区间查询。那么就需要一个支持插入的平衡树来帮忙了。每个平衡树节点上开一个权值线段树,平衡树维护排名,线段树查询第K大但是又不能旋转,那就替罪羊树了。节点上的线段树是当前节点的值和儿子的线段树的合并(然而我写的线段树合并莫名TLE果然还是太菜了。。所以就改成暴力插入。。)查询的时候就从平衡树的根下去,根据线段树的权值个数来划分区间,把线段...原创 2019-03-21 12:05:05 · 211 阅读 · 0 评论 -
BZOJ 3514: Codechef MARCH14 GERALD07加强版 【LCT+主席树求图的连通块个数】
题目描述:题目传送门N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。n,m<=200000题目分析:图的连通块个数肿么求?按编号顺序依次加边。如果边iii加入的时候形成了环,那么把环中最先加入的边jjj找到,令pre[i]=jpre[i]=jpre[i]=j,并把jjj断掉。如果没有成环,那么pre[i]=0pre[i]=0pre[i]=0区间...原创 2019-03-22 08:18:05 · 494 阅读 · 0 评论 -
BZOJ 3932: [CQOI2015]任务查询系统 【主席树】
主席树板题。把任务差分之后插入,单点查询就好了。注意空间要开100000*50,因为插入分了两部分(*40会WA掉。。)。注意找前K小的时候要和根节点的siz取min。还有查询的时候l==r是返回l*x而不是sum[now]Code:#include<cstdio>#include<cctype>#include<vector>#include...原创 2019-03-22 09:14:37 · 121 阅读 · 0 评论 -
Newnode's NOI 模拟赛 第三题 【可持久化线段树优化建图】
题面:n<=100000题目分析:两个宇宙之间的大小关系是确定的,考虑从大的向小的连一条边。这样连边可能会成环(边双联通分量),按某种顺序排列,环中的点都可能成为环中的最大点,tarjan将环缩点之后,没有入度的连通分量中的点就是可能成为最大宇宙的点。正确性似乎比较显然,于是考场上打了60分的n2暴力就溜了。后来一想,边数太多,显然又是什么xxx优化建边。果然。以下题解引...转载 2019-03-27 17:05:56 · 358 阅读 · 0 评论