zoukankan      html  css  js  c++  java
  • hdu 2993 斜率dp

    思路:直接通过斜率优化进行求解。

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #define Maxn 1000010
    using namespace std;
    __int64 sum[Maxn];
    __int64 num[Maxn];
    int que[Maxn*4];
    int main()
    {
        int n,k,head,rear,x;
        int i,j;
        double ans;
        while(scanf("%d%d",&n,&k)!=EOF){
            ans=0;
            for(i=1;i<=n;i++){
                scanf("%I64d",&num[i]);
                sum[i]=sum[i-1]+num[i];
            }
            head=1,rear=0;
            que[++rear]=0;
            for(i=k;i<=n;i++){
                j=i-k+1;
                while(head<rear&&(sum[i]-sum[que[head+1]])*(i-que[head])>=(sum[i]-sum[que[head]])*(i-que[head+1]))
                    head++;
                ans=max(ans,(double)((double)sum[i]-(double)sum[que[head]])/(double)((double)i-(double)que[head]));
                while(head<rear&&(sum[j]-sum[que[rear]])*(que[rear]-que[rear-1])<=(sum[que[rear]]-sum[que[rear-1]])*(j-que[rear]))
                    rear--;
                que[++rear]=j;
            }
            printf("%.2lf
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    IntelliJ IDEA基本设置
    git安装
    Git的作用与安装
    git是什么
    SpringMVC控制器类方法的返回值
    SpringMVC中Model机制
    什么是Nosql
    如何使用Jedis操作redis
    redis中数据类型操作命令
    redis的全局命令
  • 原文地址:https://www.cnblogs.com/wangfang20/p/3369262.html
Copyright © 2011-2022 走看看