
二分与前缀和
青衫客36
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Acwing-4455. 出行计划
正解:t时刻做核酸,可以在[t + k, t + k + c - 1]进入某个场所,其中c为进入场所时所需的单位时间数。若在ti时刻进入某场所,即要求ti >= t + k,且ti原创 2023-01-17 10:59:39 · 109 阅读 · 0 评论 -
Acwing-4656. 技能升级
【代码】Acwing-4656. 技能升级。原创 2023-01-14 12:32:58 · 159 阅读 · 0 评论 -
Acwing-4655. 重新排序
统计求和次数时注意到只有修改操作而没有查询操作,于是可以用差分来维护。具体地,我们建立一个都为0的差分数组b,当 l∼r 这段区间被求和时,就将 b[l] 加上1,b[r+1]减去1就可以了。我们可以先统计原来的求和的总和 sum,再给 A 数组和统计求和次数的数组 c 从小到大排好序,最后依次相乘起来即 ∑(i=1~n) a[i]*c[i]减去原来的总和 sum 便是答案。我们可以累计每个 A[i] 的被求和次数 c[i]。容易贪心得到,被求和次数越多的肯定得放越大的数。时间复杂度:O(nlogn)原创 2023-01-10 19:02:22 · 115 阅读 · 0 评论 -
Acwing-4644. 求和
观察题目中的公式,我们发现该式可扩充为(a1 + a2 + a3 + ... + an) ^ 2 这种完全平方的形式,然后减去扩充的那部分即为题中所求公式的值。应用前缀和的思想,让a[i]乘以它前面的所有数即可,即。暴力解法,TLE了hh~原创 2023-01-08 22:40:41 · 75 阅读 · 0 评论 -
LeetCode-旋转数组的最小数字
将前面某段移动到后面,此时可能会出现最开始某几个数字和结尾的几个数字是相同的,我们把结尾部分(与开始部分相同的数字)去掉后会发现,后半部分所有的数字都比第一个元素小,前半部分所有数字都满足比第一个元素大或相等,那我们就可以二分了,二分出来整个区间第一个比第一个元素小的数,那么这个数就是我们的最小值。原创 2022-10-26 15:50:32 · 186 阅读 · 0 评论 -
LeetCode-不修改数组找出重复的数字
1 - n 里面有n + 1个数,由抽屉原理可知,最少有两个数相同,我们用递归的思想来做,把整个区间一分为二,以数值来划分(而不是以数组下标来分),即左半边是所有数值在1 - n / 2之间的数,右半边是数值在n / 2 + 1到n之间的数,因为整个区间中至少存在两个数是相同的,所以,左边或右边至少有一边,数的个数大于坑的个数,即有两个数在一个坑里。每次我们可以把整个区间的规模缩小一半,保证我们这一半的区间里面是有答案的。原创 2022-10-25 14:07:17 · 186 阅读 · 0 评论 -
Acwing 1230. K倍区间
分析:s[j] - s[i - 1] % k == 0,第一反应 前缀和+两重循环,结果TLE了。原创 2022-10-06 17:06:43 · 123 阅读 · 0 评论 -
Acwing 99. 激光炸弹
【代码】Acwing 99. 激光炸弹。原创 2022-10-06 14:54:34 · 165 阅读 · 0 评论 -
Acwing 1227. 分巧克力
每个巧克力能切多少块是可以计算出来的,假设当前巧克力的边长是Wi * Hi的话,若要切出边长是x的巧克力的话,能切的块数为(Wi / x) * (Hi / x) (int默认下取整)if (f(mid) >= k) 如果成立的话,说明所有=mid的位置,所以我们在更新时,应该是l = mid。否则,如果当前的边长是不能满足k的,说明答案比mid要小,而且mid是不能作为答案的,对于每一块巧克力来说,切出来的数量随着边长的增加而递减的。原创 2022-10-06 12:07:12 · 197 阅读 · 0 评论 -
Acwing 1221. 四平方和
4. 本来需要枚举三重循环,但考虑到可能会TLE,先把两重循环的结果存下来(即将所有的c^2+d^2存起来)然后再枚举 a 和 b。所以最多枚举2个数, 2200^2 , 三个数就 2200^3 = 8e9 所以最多2个。a,b,c,d 都是原创 2022-10-05 20:15:57 · 263 阅读 · 0 评论 -
Acwing 730. 机器人跳跃问题
【代码】Acwing 730. 机器人跳跃问题。原创 2022-10-05 19:04:37 · 543 阅读 · 0 评论 -
Acwing 796. 子矩阵的和
【代码】Acwing 796. 子矩阵的和。原创 2022-10-05 16:22:02 · 106 阅读 · 0 评论 -
Acwing 795. 前缀和
【代码】Acwing 795. 前缀和。原创 2022-10-05 16:01:01 · 139 阅读 · 0 评论 -
Acwing 790. 数的三次方根
【代码】Acwing 790. 数的三次方根。原创 2022-10-05 15:38:57 · 120 阅读 · 0 评论 -
Acwing 789. 数的范围
【代码】Acwing 789. 数的范围。原创 2022-10-05 15:21:49 · 93 阅读 · 0 评论