P2115 [USACO14MAR]破坏Sabotage

Posted sfwr-you

tags:

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

技术图片

 

 


对平均值的二分,以及实数域二分,思想很好


#include<bits/stdc++.h>
using namespace std;
int n;
double num[100010],t[100010],ma[100010],mi[100010];
int check(double w)

    for(int i=0;i<=n;i++)t[i]=num[i]-w*i;
    mi[1]=t[1];ma[n-1]=t[n-1];
    for(int i=2;i<=n;i++)mi[i]=min(mi[i-1],t[i]);
    for(int i=n-2;i>=1;i--)ma[i]=max(ma[i+1],t[i]);
    for(int i=2;i<=n-1;i++)if(ma[i]-mi[i-1]>t[n])return 0;
    return 1;

int main()

    cin>>n;
    for(int i=1;i<=n;i++)cin>>num[i],num[i]+=num[i-1];
    double l=0,r=11000;
    for(int i=1;i<=50;i++)
    
        double mid=(l+r)/2;
        if(check(mid))l=mid;
        else r=mid;
    
    printf("%.3lf",l);

 

以上是关于P2115 [USACO14MAR]破坏Sabotage的主要内容,如果未能解决你的问题,请参考以下文章

P2115 [USACO14MAR]Sabotage G(二分)

洛谷2115 [USACO14MAR]破坏Sabotage

LuoguP2115 [USACO14MAR]破坏Sabotage二分答案By cellur925

BZOJ3477: [Usaco2014 Mar]Sabotage

BZOJ_3477_[Usaco2014 Mar]Sabotage_二分

[USACO14MAR] Counting Friends