随笔分类 - 数据结构---可持久化
摘要:【LG2839】[国家集训队]middle 题面 "洛谷" 题解 按照求中位数的套路,我们二分答案$mid$,将大于等于$mid$的数设为$1$,否则为$ 1$。 若一个区间和大于等于$0$,则答案可以更大,反之亦然。 对于这个题,我们只要维护出$[b+1,c 1]$之间二分答案后的和,$[a,b]
阅读全文
摘要:【LG3722】[HNOI2017]影魔 题面 "洛谷" 题解 先使用单调栈求出$i$左边第一个比$i$大的位置$lp_i$,和右边第一个比$i$大的位置$rp_i$。 考虑$i$对答案的贡献,当且仅当$i$作为区间$[x+1,y 1]$的最大值时,$i$才对点对$(x,y)$有贡献。 根据题意,第
阅读全文
摘要:【LG3248】[HNOI2016]树 题面 "洛谷" 题解 因为每次你加入的点是原树上某一棵子树 那么我们一次加入一个点,代表一棵子树加到大树下面 那么我们要找到一个点在一个大点中用主席树在$dfs$序中$kth$即可 询问的话,先将所有的点权(深度)转化为边权 查询时先将两点跳到它所在大点的根
阅读全文
摘要:【BZOJ3551】[ONTAK2010]Peaks加强版 题面 给你一个图,每次询问给定一个位置、长度和$k$,问从这个点出发,只能经过不大于这个长度的边,到达的点中点权第$k$大的点权 图的规模:$10^5$ 题解 考虑离线怎么做: 将所有询问存下来,按照边权排序 每次加边线段树合并查$kth$
阅读全文
摘要:【BZOJ2589】[SPOJ10707]Count on a tree II 题面 "bzoj" 题解 这题如果不强制在线就是一个很$sb$的莫队了,但是它强制在线啊$qaq$ 所以我们就用到了另一个东西:树分块 具体是怎么分块的呢:根据深度,从最深的叶子节点往上分,同一子树内的节点在一个块 比如
阅读全文
摘要:【LG4585】[FJOI2015]火星商店问题 题面 bzoj权限题 "洛谷" $Notice:$ 关于题面的几个比较坑的地方: “一天”不是一个操作,而是有0操作就相当于一天开始了,然后下面的紧跟着的1操作都算这一天的,直到再次出现0操作为止。当然第一个操作可能会是1操作这个时候也算第一天(比如
阅读全文
摘要:【LG4587】[FJOI2016]神秘数 题面 "洛谷" 题解 首先我们想一想暴力怎么做 对于一段区间$[l,r]$ 我们先将它之间的数升序排序 从左往右扫, 设当前我们可以表示出的数为$[1,x]$,待插入的数为$a_i$ 会有下面两种情况: 1.$a_i x+1$时,$x+1$肯定表示不出来$
阅读全文
摘要:【CF543E】Listening to Music 题面 "洛谷" 题目大意 给你一个长度为$n$序列$a_i$,和一个常数$m$,定义一个函数$f(l,x)$为$[l,l+m 1]$中小于$x$的数的个数,有$q$个询问,每次给定$l,r,x$查询$min_{i=l}^rf(i,x)$。 题解
阅读全文
摘要:【LG5055】可持久化文艺平衡树 题面 "洛谷" 题解 终于不可以用$Trie$水了。。。 和普通的$FHQ\;treap$差不多 注意一下$pushdown$、$split$要新开节点 代码 cpp include include include include include include
阅读全文
摘要:【BZOJ3489】A simple rmq problem 题面 "bzoj" 题解 这个题不强制在线的话随便做啊。。。 考虑强制在线时怎么搞 预处理出一个位置上一个出现的相同数的位置$pre$与下一个位置$nxt$ 则对于一个询问$[l,r]$ 一个位置$i$当且仅当$pre_ir$ 我们可以将
阅读全文
摘要:【LG4735】最大异或和 题意 "洛谷" 题解 维护一个前缀异或和$S_i$ 对于一个询问操作$l$、$r$、$x$ 就是等价于求一个位置$p$($l\leq p \leq r)$使得$S_nxorS_{p 1}xorx$最大 可将此问题转化为求$p$使$S_{p 1}$ $xor$ $S_n x
阅读全文
摘要:【LG3835】可持久化平衡树 题面 "洛谷" 解法一 "参考文章" ~~rope大法好~~ $rope$基本操作: 再配合二分即可实现各种操作 如何进行复制: 代码 解法二 用可持久化$trie$可以很方便地实现 代码 cpp include include include include inc
阅读全文