线段树
线段树
Joker & Liar
这个作者很懒,什么都没留下…
展开
-
CodeForces - 981E(Addition on Segments)
题意:给出若干个操作,每个操作给定三个数 l , r , d ,表示给区间 [l,r] 内的所有值加上 d ,选出这些操作的子集,若一个子集的最大值在[1,n]之间则记录下来,问这些操作的所有子集的最大值累加下来,能达到[1,n]之间的多少个并输出。分析:线段树+bitset,第一次见这个做法组合有点不习惯,不过做过一次就好了,代码很简单,看下就可以理解了。(还有一种巧妙的DP做法:...原创 2019-10-16 23:10:03 · 197 阅读 · 0 评论 -
HDU6856 - 2020杭电多校第八场 1002 - Breaking Down News
大致题意:将大小为 nnn 的整数数组 a (ai∈{−1,0,1})a~(a_i \in \{-1,0,1\})a (ai∈{−1,0,1}) 分为若干段,规定每段的大小介于 [L,R][L,R][L,R] ,每段的权值与其元素和有关,设一个段的元素和为 sumsumsum ,权值为 vvv若 sum<0sum<0sum<0 ,则 v=−1v=-1v=−1;若 sum=0sum=0sum=0 ,则 v=0v=0v=0;若 sum>0sum>0s原创 2020-08-21 22:24:02 · 318 阅读 · 0 评论 -
Educational Codeforces Round 90 (Rated for Div. 2) - G. Pawns
题意:一个 n×nn \times nn×n 的棋盘上会有 mmm 次变化,每次变化都会在某个空的位置上出现一个兵 或者 移去存在棋盘上的某个兵;一个兵处于坐标 (x,y)(x,y)(x,y) 可以移动到 (x,y+1)(x,y+1)(x,y+1) , (x−1,y+1)(x-1,y+1)(x−1,y+1) 或 (x+1,y+1)(x+1,y+1)(x+1,y+1),前面是列,后面是行;有一个特殊列 kkk,每次变化,你都要计算把所有的兵移动到第 kkk 列(不可以重叠),需要在棋盘上第 nnn 行之原创 2020-06-29 17:23:32 · 250 阅读 · 0 评论 -
POJ - 2528 (Mayor's posters)
题意:有一块公示板,依次给定 n 个 操作,每次操作给出 L,R ,表示把公示板 [L,R] 覆盖(之前在[L,R]之内的会被遮住),问最后n个操作有多少个操作还会露出来(露出来一点也算);分析:线段树维护区间,因为L,R<=1E7 而 n <=10000,所以得离散化,本来一开始用map离散化结果T了,就直接开了一个1E7的数组离散化(离散化的时候注意如果相邻的两个数相减不...原创 2020-03-20 17:39:24 · 90 阅读 · 0 评论