###前缀和十分好理解,与数学上面的等差数列类同 先上前缀和模板 #以下是一维前缀和 公式如下 S[i] = a[1] + a[2] + ... a[i] a[l] + ... + a[r] = S[r] - S[l - 1] #二维前缀和模板 S[i, j] = 第i行j列格子左上部分所有元素的和 ...
分类:
编程语言 时间:
2020-07-03 17:05:53
阅读次数:
109
在由若干 0 和 1 组成的数组 A 中,有多少个和为 S 的非空子数组。 示例: 输入:A = [1,0,1,0,1], S = 2 输出:4 解释: 如下面黑体所示,有 4 个满足题目要求的子数组: [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1] ...
分类:
编程语言 时间:
2020-07-03 00:31:48
阅读次数:
82
A - Detachment 题目:http://acm.hdu.edu.cn/showproblem.php?pid=5976 题解:这道题思路为:数学规律+逆元 这里有一个结论,对于一个数把他拆成从2开始的连续的数,最后得到的成绩是最大的,所以我们可以先预处理一下前缀和包括乘积后的结果。不过对于 ...
分类:
其他好文 时间:
2020-07-01 20:13:06
阅读次数:
65
二维差分 原数组a[i][j] 差分数组b[i][j] 使得a数组是b数组的前缀和 同样开始时假定a[i][j]和b[i][j]都等于0 然后对于a数组中的每一个数再插一遍就好了 一维差分是对一段加上一个值 二维差分是对一个子矩阵加上一个值 b[x1][y1]加上c就是x1,y1右下角的所有点加上c ...
分类:
其他好文 时间:
2020-06-29 13:33:51
阅读次数:
46
差分是前缀和的逆运算 假如原数组是a[1],a[2],...,a[n]. 我们构造b数组,b[1],b[2],...,b[n]. 使得a[i] = b[1] + b[2] + ... + b[i] 使得a数组是b数组的前缀和 b数组就称为a数组的差分 差分的作用: 对b数组求一遍前缀和就可以得出a数 ...
分类:
其他好文 时间:
2020-06-29 13:12:34
阅读次数:
46
前缀和里,下标从1开始。 原数组为a[1],a[2],a[3],...,a[n]。 前缀和数组s[i]表示原数组中前i个数的和。s[i] = a[1] + a[2] + ... + a[i]。 前缀和数组是由原数组计算出来的。 1:如何求s[i]: 从前往后递推一遍就好了 s[0] = 0 2:前缀 ...
分类:
其他好文 时间:
2020-06-28 20:44:44
阅读次数:
47
题目链接:https://codeforces.com/contest/1359/problem/D 想法: 因为是减去最大值,我们可以考虑直接枚举最大值。 找到左边最后一个 小于等于a[i] 的位置,找到右边最后一个 小于等于a[i] 的位置 找到这样的一个子区间,然后我们利用ST表维护前缀和,找 ...
分类:
其他好文 时间:
2020-06-28 00:01:11
阅读次数:
80
A: 现有两种购物方式 1.花单价a元购买 2.花c元购买b个物品 给出数据后问 1.购买多少个物品可以使得用方式1的花费严格小于方式2 2.购买多少个物品可以使得用方式2的花费严格小于方式1 若不存在输出-1 直接贪心 由于b>=2 ,购买一个必然是最优,如果这都不行那更大也不行 第二个询问也是同 ...
分类:
其他好文 时间:
2020-06-26 23:54:38
阅读次数:
111
$\text$我来啦我来啦 \(\text{Solution:}\) 题目要求求好几个串串的$\text$ 由于串串的数量并不多,所以我们把它们塞到一个$\text$里面,中间加上分隔符号。 那么答案就是最深的且它的子树中具有所有分节符的非叶子节点。 至于分节符数量和种类,用前缀和即可。 介于$\t ...
分类:
其他好文 时间:
2020-06-26 14:56:32
阅读次数:
46
##题面 题目链接 ##思路 朴素的想法我们回去暴力修改区间元素,从而判断教室能否够用,但是看数据范围显然这会超时,既然区间问题我们立马想到前缀和和差分数组,and线段树和树状数组,这里不写树状数组和线段树的做法。我们看数据测试量,然后看了一下,这个答案具有线性性质,所以我们可以二分加速,所以我们二 ...
分类:
编程语言 时间:
2020-06-26 10:45:01
阅读次数:
128