「口胡题解」「CF965D」Single-use Stones

题目

有许多的青蛙要过河,可惜的是,青蛙根本跳不过河,他们最远只能跳 \(L\) 单位长度,而河宽 \(W\) 单位长度。

在河面上有一些石头,距离 \(i\) 远的地方有 \(a_i\) 个石头,每个石头只能使用一次,求最大能有多少青蛙过河。

输入的第一行为两个整数 \(W,L(1<l<w<10^5)\)

第二行有 \(W-1\) 个整数 \(a_1,a_2.......a_{w-1}(0<a_i<10^4)\)

输出为一个整数,即能过河的最大青蛙数

口胡题解

不可避免的,如果最多有 \(k\) 只到对岸,选择任意一个位置 \(i\),以位置 \(i\) 前面的任意一个位置为源点,一步越过位置 \(i\) 的流量总和 \(flow[i]\) 。那这个流量总和 \(flow[i]\) 就是 \([i-l+1,i]\) 的石头总数 \(sum[i-l+1,i]\) 。而答案明显就是这些流量总和中最小的那个。因此求个前缀和,然后 \(O(w)\) 地遍历一遍找最小的一个 \(sum[i-l+1,i]\) 即为答案。

代码还用说吗?这仅仅是一篇口胡......

posted @ 2020-02-03 16:37  Arextre  阅读(171)  评论(0编辑  收藏  举报