线段树
Ripped
我那么浮躁却想要读懂你的生活
展开
-
【POJ 3667】Hotel
POJ 3667题意有n个房间和k个操作,最开始全部为空。操作1:输入一个数d,找出连续d个空房间,输出起点房间编号。若有多个输出最小的,如果不存在输出0。操作2:输入两个数x和d,清空从x开始的d个房间。样例输入10 6 1 3 1 3 1 3 1 3 2 5 5 1 6样例输出1 4 7 0 5sol用线段树维护,每个节点存储三个值msum,lsum,rsum。msum表示当原创 2017-02-05 12:21:02 · 338 阅读 · 0 评论 -
【POJ 2104】K-th Number&主席树详解
POJ 2104题意给定1到n的排列,每次询问某一区间内的第k大值。样例输入7 3 1 5 2 6 3 7 4 2 5 3 4 4 1 1 7 3样例输出5 6 3主席树介绍可持久化线段树,函数式线段树。 有点抽象,能够理解但还不是很熟练,代码不长,但是非常简练,有很多技巧,目前当做黑箱。 可持久化:每次操作尽量用新节点表示而不是修改原节点,这样就能保留所有历史信息。 函数式原创 2017-02-05 12:22:05 · 550 阅读 · 0 评论 -
【ZOJ 2112】Dynamic Rankings
ZOJ 2112题意给你n个数,有q次操作,每次操作可以修改某一个数,或是求区间第k小值。(多组数据)样例输入2 5 3 3 2 1 4 7 Q 1 4 3 C 2 6 Q 2 5 3 5 3 3 2 1 4 7 Q 1 4 3 C 2 6 Q 2 5 3样例输出3 6 3 6SOL如果不考虑单点修改就是主席树裸题。主席树本质上使用前缀和维护的,查询复杂度为O(1),但修改原创 2017-02-05 20:55:20 · 340 阅读 · 0 评论 -
【BZOJ 3110】【ZJOI 2013】K大数查询
BZOJ 3110 / ZJOI 2013题意有n个位置和m个操作,操作分两种: 输入1 a b c:在a到b的所有位置加入一个数c; 输入2 a b c:询问a到b每个位置上所有的数中的第c大数。 注意每个位置可以有多个数。样例输入2 5 1 1 2 1 1 1 2 2 2 1 1 2 2 1 1 1 2 1 2 3样例输出1 2 1SOL首先是离散化,注意本题原始数据并没有负原创 2017-02-06 20:46:02 · 346 阅读 · 0 评论 -
【BZOJ 4383】【POI 2015】Pustynia
这题有点难度,自己目前理解不是很透彻,待填坑。%%% http://blog.csdn.net/u011542204/article/details/50769451考虑暴力做法:每次从大的数向小的数连一条边,权值为1。然后跑一下拓扑,就可以知道所有数的大小关系了。 优化也是利用延迟修改:每次把一个区间拆成k段,然后找出线段树中每一段对应的标记,让这些标记去连边。最后也是跑一下拓扑序。原创 2017-03-10 18:53:56 · 418 阅读 · 0 评论 -
【POJ 2528】Mayor's posters
POJ2528题意给定n张海报,每张海报的范围从a[i]到b[i],依次覆盖,后添加的海报会覆盖掉原来位置的海报,求最后能够看到几张海报。多组数据。样例输入1 5 1 4 2 6 8 10 3 4 7 10样例输出4sol首先离散化,然后用线段树维护。注意题目里的起点和终点是线段,但是线段树的操作是点,所以离散的时候要加入一些数。举个例子来解释一下: [1,5]和[6,10]将[1,原创 2017-02-05 12:19:47 · 282 阅读 · 0 评论 -
【BZOJ 1858】【SCOI 2010】序列操作
0~3操作都是很裸的线段树操作,主要是这个4操作有点复杂。 定义一下数组的含义: l0/1:从左端点开始连续的0/1的个数 r0/1:从右端点开始连续的0/1的个数 m0/1:连续的最长的0/1串 sum:1的个数 在update操作的时候,l和r数组的更新都可以直接由孩子得到,但要注意一类情况:比如左孩子全部是1,那么就可以把右孩子左端的1连起来。m数组由两种情况得到,一种是孩子的m数原创 2017-04-17 15:23:59 · 502 阅读 · 0 评论 -
【BZOJ 4821】【SDOI 2017】相关分析
把公式化开来得到: a=∑ri=l(xiyi−x¯yi−xiy¯+x¯y¯)∑ri=l(x2i−2x¯xi+x¯2)a=\frac{\sum _{i=l}^{r}(x_iy_i-\bar{x}y_i-x_i\bar{y}+\bar{x}\bar{y})}{\sum_{i=l}^{r}(x_i^2-2\bar{x}x_i+\bar{x}^2)} 把分子的第二项拿出来结合∑ri=l\sum_{i=l原创 2017-04-23 19:07:25 · 913 阅读 · 0 评论 -
【BZOJ 4869】【2017六省联考】相逢是问候
考虑一个欧拉定理的扩展: 当x>φ(p)x>\varphi (p)时有: cx≡cx%φ(p)+φ(p)(modp)c^x \equiv c^{x\%\varphi (p)+\varphi(p) }(mod p) 也叫作欧拉定理EXT,证明看这里:https://zhuanlan.zhihu.com/p/24902174 这个公式的强大之处在于a和p可以不互质,也就是说p可以不为质数。 然原创 2017-04-27 13:54:41 · 2939 阅读 · 0 评论