Best Cow Fences(二分)

问题 K: Best Cow Fences

时间限制: 1 Sec  内存限制: 128 MB
提交: 61  解决: 27
[提交] [状态] [讨论版] [命题人:admin]

题目描述

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. 

 

输入

* 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. 

 

输出

* 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. 

 

样例输入

10 6
6 
4
2
10
3
8
5
9
4
1

 

样例输出

6500

题意:给你n个牛的自身价值,让你找出连续的且数量大于等于F的一段区间,使这段区间内的牛的平均价值最大。

分析:一个简单的二分,再加一个经典的处理。

1、首先二分区间的平均值为多少,让数组中的所有数都减去平均值。

2、再从数组中找出一段长度大于等于F的区间,看区间和是否会大于等于0。

3、要找这段区间需要维护左端点最小值,枚举右端点。先把减去平均值的数组求一个前缀和,再设K,对于当前枚举到的 i 位置,我们想让a[i]-a[k],尽量大,那么a[k],就必须尽量小,所以一直维护最小值就可以了minn=(minn,sum[i-m])。

展开阅读全文

Best Cow Line

01-20

DescriptionnnFJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.nnThe contest organizers adopted a new registration scheme this year: simply register the initial letter of every cow in the order they will appear (i.e., If FJ takes Bessie, Sylvia, and Dora in that order he just registers BSD). After the registration phase ends, every group is judged in increasing lexicographic order according to the string of the initials of the cows' names.nnFJ is very busy this year and has to hurry back to his farm, so he wants to be judged as early as possible. He decides to rearrange his cows, who have already lined up, before registering them.nnFJ marks a location for a new line of the competing cows. He then proceeds to marshal the cows from the old line to the new one by repeatedly sending either the first or last cow in the (remainder of the) original line to the end of the new line. When he's finished, FJ takes his cows for registration in this new order.nnGiven the initial order of his cows, determine the least lexicographic string of initials he can make this way.nnInputnn* Line 1: A single integer: Nn* Lines 2..N+1: Line i+1 contains a single initial ('A'..'Z') of the cow in the ith position in the original linennOutputnnThe least lexicographic string he can make. Every line (except perhaps the last one) contains the initials of 80 cows ('A'..'Z') in the new line.nnSample Inputnn6nAnCnDnBnCnBnSample OutputnnABCBCD 问答

没有更多推荐了,返回首页