![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构杂项(分块/ST表等……)
文章平均质量分 68
数据结构杂项(分块/ST表等……)
_lifehappy_
这个作者很懒,什么都没留下…
展开
-
3085 吃遍赴丝码(分治)
3085 吃遍赴丝码给定一个长度为nnn的数组,求∑i=1n∑j=in(j−i+1)×min{ai,…,aj}×max{ai,…,aj}\sum\limits_{i = 1} ^{n} \sum\limits_{j = i} ^{n} (j - i + 1) \times min\{a_i, \dots, a_j\} \times max\{a_i, \dots, a_j\}i=1∑nj=i∑n(j−i+1)×min{ai,…,aj}×max{ai,…,aj}。考虑分治求解,f(l,mid)原创 2021-07-30 20:10:48 · 243 阅读 · 0 评论 -
C - Swaps 2(树状数组,思维)
C - Swaps 2给定两个长度为nnn的数组A,BA, BA,B,我们可以进行若干次如下操作,使AAA变成BBB,选定i<ni < ni<n,将aia_iai减小111,将ai+1a_{i + 1}ai+1增加111。交换ai,ai+1a_i, a_{i + 1}ai,ai+1。问我们进行多少次操作,可以将AAA变成BBB,如果无解则输出−1-1−1,否则输出最小操作次数。容易发现,不管怎么交换ai+ia_i + iai+i的值都是不变的,当我们要得到bib_i原创 2021-06-08 13:41:29 · 363 阅读 · 0 评论 -
P3591 [POI2015]ODW(分块)
P3591 [POI2015]ODW给定一颗有nnn个节点的树,点有点权,给定一个长度为nnn的排列ppp,给定一个长度为n−1n - 1n−1的数组ccc,我们会在树上进行n−1n - 1n−1次行走,第iii次我们会从p[i]p[i]p[i]走到p[i+1]p[i + 1]p[i+1],步长为c[i]c[i]c[i],且走最短路,当我们到p[i+1]p[i + 1]p[i+1]的距离小于c[i]c[i]c[i]的时候,我们会直接到点p[i+1]p[i + 1]p[i+1],对每次行走,我们要求出其原创 2021-05-27 11:12:55 · 326 阅读 · 0 评论 -
CF1422F Boring Queries(ST表 + 主席树)
CF1422F Boring Queries给定一个长度为nnn的数组a,(1≤ai≤2×105)a,(1 \leq a_i \leq 2 \times 10 ^ 5)a,(1≤ai≤2×105),有mmm次询问,每次询问给定l,rl, rl,r,要我们求区间[l,r][l, r][l,r],aia_iai的lcmlcmlcm,强制在线。对于质因子ppp,如果p2>2×105p ^ 2 > 2 \times 10 ^ 5p2>2×105,那么它在每个数中出现的次数只有两种可能0/1原创 2021-05-25 16:03:07 · 269 阅读 · 0 评论 -
C. Safe Distance(二分 + 并查集)
C. Safe Distance(二分 + 并查集)给定一个X×YX \times YX×Y的矩形,里面有n,(1≤n≤1000)n,(1 \leq n \leq 1000)n,(1≤n≤1000)个点,我们要从点(0,0)(0, 0)(0,0)走到(X,Y)(X, Y)(X,Y),我们要使过程中与这nnn个点的最小距离最大,输出这个最大距离。考虑二分答案?对于给定的xxx,判断能否从(0,0)(0, 0)(0,0)走到(X,Y)(X, Y)(X,Y),设置l=0,r=min(disS,disT)l =原创 2021-05-20 18:24:52 · 475 阅读 · 0 评论 -
L. Continuous Intervals(单调栈 + 线段树 + 思维)
L. Continuous Intervals给定一个长度为nnn的数组,问里面有多少个区间[l,r][l, r][l,r],满足,对这个区间排序后,两两差值$ \leq 1$,输出区间个数。如果说区间[l,r][l, r][l,r]是符合要求的,则满足max(al,…,ar)−min(al,…,ar)+1=cntmax(a_l, \dots, a_r) - min(a_l, \dots, a_r) + 1 = cntmax(al,…,ar)−min(al,…,ar)+1=cnt,cntcntc原创 2021-05-19 20:43:54 · 306 阅读 · 0 评论 -
P3564 [POI2014]BAR-Salad Bar(ST表 + 二分)
P3564 [POI2014]BAR-Salad Bar给定一个长度为nnn的数组,里面元素只有111跟−1-1−1,问选出一个长度为lenlenlen的区间使得,这个区间的前缀和时刻大于零,后缀和时刻大于零,输出最大长度lenlenlen,考虑枚举lll端点,我们可以二分出最大的rrr,满足pre_sumpre\_sumpre_sum时刻大于等于零,设为[l,r][l, r][l,r],考虑枚举RRR端点,我们可以二分出最小的LLL,满足suc_sumsuc\_sumsuc_sum时刻大于等于零,设原创 2021-05-11 23:20:58 · 302 阅读 · 0 评论