分治 | Best Cow Fences
Description
Farmer John’s farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2000.
FJ wants to build a fence around a contiguous group of these fields in order to maximize the average number of cows per field within that block. The block must contain at least F(1 <= F <= N) fields, where F given as input.
Calculate the fence placement that maximizes the average, given the constraint.
Input
Line 1: Two space-separated integers, N and F.
Lines 2..N+1: Each line contains a single integer, the number of cows in a field. Line 2 gives the number of cows in field 1,line 3 gives the number in field 2, and so on.
Output
- Line 1: A single integer that is 1000 times the maximal average.Do not perform rounding, just print the integer that is 1000*ncows/nfields.
Sample Input
1 | 10 6 |
Sample Output
1 | 6500 |
Hint
USACO 2003 March Green
分析
二分题目所求的连续序列平均数,需要用到前缀和,递推式:
发现 $\sum_{k=1}^iv[i]$ 是定值,可以用前缀和处理出来,于是:
而 $i$ 变到 $i+1$ 时,$j$ 的选择范围扩大了 $1$ ,于是:
预处理 + 二分猜答案来做
Codes
1 |
|