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(二分)
LuoguP2115 [USACO14MAR]破坏Sabotage二分答案By cellur925
BZOJ3477: [Usaco2014 Mar]Sabotage