
树状数组
C202044zxy
这个作者很懒,什么都没留下…
展开
-
[ZJOI2017] 树状数组
一、题目点此看题二、解法解决这道题需要知道树状数组的原理,iii 维护的是 (i−lowbit(i),i](i-lowbit(i),i](i−lowbit(i),i] 的求和。那么如果反过来,那么 iii 维护的是 [i,i+lowbit(i))[i,i+lowbit(i))[i,i+lowbit(i)) 的求和,所以原来求前缀和,现在求的是后缀和。那么我们把正确的条件列出来:sum[l,r]=sum[l−1,r−1]sum[l,r]=sum[l-1,r-1]sum[l,r]=sum[l−1,r−原创 2020-11-29 11:13:00 · 322 阅读 · 0 评论 -
CF827C DNA Evolution
一、题目点此看题二、解法观察到eee很小,且字母种类为444,有一种很神奇的做法,维护b[ty][len][pos]b[ty][len][pos]b[ty][len][pos]表示考虑字符tytyty,eee长度为lenlenlen的时候,当前下标模eee余pospospos的树状数组,维护还是比较好做的。算答案的时候因为是循环,所以可以把模出来一样的放一起算,直接带值到树状数组里去算即可。#include <cstdio>#include <cstring>const原创 2020-08-13 19:56:32 · 174 阅读 · 0 评论 -
[NOI Online 提高组]冒泡排序
刚考完,赶紧来水一波题解,应该是luoguluoguluogu第一个发题解的。一、题目点此看题二、解法首先这道题有一道同名题,很相似(推荐先看这道同名题的题解,那题是黑的,怎么这题评成蓝色了?)逆序对转化成每一个数前面比它大的数的个数(记为bbb数组),如果一个数前面有比他大的数,那么它会左移一位,也就是bbb减111,那么答案为(记轮数为kkk):∑min(b[i]−k,0)\su...原创 2020-03-07 17:17:53 · 413 阅读 · 0 评论 -
CF924D Contact ATC
一、题目点此看题二、解法考虑两个人(i,j)(i,j)(i,j)在原点相遇的条件,设风速为www时iii通过原点的时间是txitx_itxi,设风速为−w-w−w时iii通过原点的时间是tyity_ityi,如果(i,j)(i,j)(i,j)能在原点相遇,那么(txi−txj)×(tyi−tyj)≤0(tx_i-tx_j)\times(ty_i-ty_j)\leq0(txi−txj)...原创 2020-02-05 10:19:06 · 337 阅读 · 0 评论 -
[JXOI2017]加法
一、题目不想多说,点此看题二、解法说一下这道题的解法吧,没有什么过于复杂的地方(毕竟我都能看出来解法)。这道一看就是要二分答案,我们考虑怎么检查midmidmid。我们先对于每个操作区间按左端点排序(本题可用前向星)。考虑处理到当前的点,将覆盖它的操作区间直接加上去,因为二分的特性我们只需要检查midmidmid的可行性,为了可行我们不能落下任何一个点,所以一定要加到它不小于midmid...原创 2019-09-12 22:29:16 · 329 阅读 · 1 评论