前缀和
qq_38232157
这个作者很懒,什么都没留下…
展开
-
洛谷 P1311 选择客栈(递推,前缀和)
递推,前缀和 题目意思: 注意,题目要求的是,住宿方案的总数。 比如说,连个旅店 x, y,在 区间[x, y] 之间有 10 个 咖啡店满足 消费 <= p, 但只算一种方案。 本题要点: 1、前缀和: sum[i] 表示前 i个客栈,咖啡消费小于等于p的数量。 2、用vector v[i] 来存颜色是 i 旅店的编号。 后面就可以按颜色分类计算,假设颜色是 i , 假设现在已经处理完前k个旅店 也就是说 0, 1, …, k - 1 这几个旅店已经计算完,它们之间可以配对的方案数量。 现在加入 a原创 2020-09-15 12:57:12 · 130 阅读 · 0 评论 -
洛谷 P1314 聪明的质监员(二分查找,前缀和)
二分查找,前缀和 本题要点: 1、首先, s 很大,所有用 long long 来存数组 w, v 和前缀和。 2、sum_num[i] 表示前 i 个位置, w值大于等于W 的数量; sum_v 表示前 i 个位置, w值大于等于W 的 v 值的累加和; 3、 二分 W, 计算每个区间的 y[i] 值, 累加得到 y 值。 二分得到第一个使得 y 值小于等于 s 的 W 值(此时取值 L), 那么 W - 1 所计算得到的y值,可能是第一个大于等于 s 的。 因此比较 W 取值 L 和 L - 1 ,看哪原创 2020-09-15 11:13:24 · 103 阅读 · 0 评论 -
CH 0502 七夕祭 (进阶指南,前缀和,中位数)
算法经竞赛进阶指南,34页, 中位数, 前缀和 本题要点: 1、 左右交换,行的摊点数不变,列的摊点数改变。同理,上下交换, 列的摊点数不变,行的摊点数改变。 因此,行的摊点和列的摊点, 可以看做是独立的两个事件; 2、这里以行的摊点为例子; row[i] 表示第i行有多少摊点; sum_x 一共有多少个摊点,一共n行。如果,sum_x % n == 0, 那么上下交换,一定可以使得,每一行的摊点数一样。 每一行有 t = sum_x / n 个摊点; 3、 求解过程,类似于 “均分纸牌”。详细看书: 数原创 2020-05-31 15:58:42 · 158 阅读 · 0 评论 -
UVa 10755 Garbage Heap (训练指南,三维前缀和)
算法竞赛训练指南,54 页, 三维的前缀和 本题要点: 1、 定义前缀和: 将长方体切片(按z左边), 每一片就是一个平面; sum[i][j][k]平面上[1,1]到[i][j]在高度为 z == k 时的区域前缀和; 二维的前缀和公式: sum(x, y) = array[x][y] + sum(x - 1, y) + sum(x, y - 1) - sum(x - 1, y - 1) 2、求解最大和 的子 长方体: 遍历底面的左边范围 [x1, x2], [y1, y2] (此时相当于固定了底面),原创 2020-05-24 13:23:03 · 174 阅读 · 0 评论