首页 > 其他 > 详细

Best Cow Fences POJ - 2018 斜率dp,限制长度

时间:2020-03-18 16:23:31      阅读:54      评论:0      收藏:0      [点我收藏+]
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int sum[N],dp[N];
int q[N];
inline double calc(int j,int i) {
    return (double)(sum[i]-sum[j])/(i-j);
}
int main()
{
    int n,k;
    while(scanf("%d%d",&n,&k)!=EOF)
    {
        sum[0]=0;
        for(int i=1;i<=n;i++)
        {
            int val;
            scanf("%d", &val);
            sum[i]=sum[i-1]+val;
        }
        double ans=0;
        int l=1,r=0;
        q[1]=0;
        for(int i=k; i<=n; i++) {
            int j=i-k;
            while(l<r && calc(q[r], q[r-1] ) >=calc(i-k,q[r-1]))
                r--;
            q[++r]=j;
            while(l<r && calc(q[l+1],i)>=calc(q[l],i))
                l++;
            ans=max(ans,1.0*(sum[i]-sum[q[l]])/(i-q[l]) );
        }
        printf("%d\n", (int)(ans*1000));
    }
 } 

Best Cow Fences POJ - 2018 斜率dp,限制长度

原文:https://www.cnblogs.com/QingyuYYYYY/p/12517060.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!