poj2018 Best Cow Fences

Posted ssfzmfy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj2018 Best Cow Fences相关的知识,希望对你有一定的参考价值。

Best Cow Fences
Time Limit: 1000MS   Memory Limit: 30000K
Total Submissions: 15533   Accepted: 4995

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

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

Sample Output

6500

Source

 

解析:二分法

求每一项与均值的差,如果差之和大于等于0,这说明均值满足条件,找到最大的满足条件的均值即可。

 

 

#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=100010;
int n,f;
double a[maxn],b[maxn],sum[maxn],maxx[maxn];
int check(double mid)
    for(int i=1;i<=n;i++)
        sum[i]=sum[i-1]+a[i]-mid;
    
    double mintemp=0x3f3f3f3f;
    for(int j=f;j<=n;j++)
        mintemp=min(mintemp,sum[j-f]);//1~j-f最小的那个和
        if(sum[j]-mintemp>=0)return true;
    
    return false;

int main()
    cin>>n>>f;
    for(int i=1;i<=n;i++) cin>>a[i];
    double l=0,r=2000,mid;
    for(int i=1;i<=40;i++)
        mid=(l+r)/2;
        if(check(mid))l=mid;
        else r=mid;
    
    cout << int(r * 1000);//如果把r该位l会WR 
//    printf("%.0lf",r*1000);//四舍五入,而牛只能向下取整 
    return 0;
    

 

以上是关于poj2018 Best Cow Fences的主要内容,如果未能解决你的问题,请参考以下文章

POJ2018 Best Cow Fences

poj2018 Best Cow Fences

POJ 2018 Best Cow Fences(二分答案)

POJ 2018 Best Cow Fences

POJ2018 Best Cow Fences

G - Best Cow Fences (POJ - 2018)