zoukankan      html  css  js  c++  java
  • [BZOJ] 2442: [Usaco2011 Open]修剪草坪

    (ans=sumlimits_{i=1}^n E[i] - mincost)
    因此我们求mincost即可

    设f[i]表示前i个牛,第i头牛一定不在,满足条件的前提下的mincost
    转移时一个区间最小值形式,下标单调递增,单调队列维护一下即可

    答案就减去f[n+1]好了,这样保证1~n都是满足条件的了

     
    #include<iostream>
    #include<cstdio>
     
    using namespace std;
     
     
    inline bool isd(char c){return c>='0'&&c<='9';}
    inline int rd(){
        int ret=0,f=1;char c;
        while(c=getchar(),!isd(c))f=c=='-'?-1:1;
        while(isd(c))ret=ret*10+c-'0',c=getchar();
        return ret*f;
    }
     
    const int MAXN = 100005;
    typedef long long ll;
     
    int n,m;
    int a[MAXN];
    ll sum,f[MAXN];
    int q[MAXN],h,t;
    int main(){
        n=rd();m=rd();
        for(int i=1;i<=n;i++)a[i]=rd(),sum+=a[i];
        m++;
        for(int i=1;i<=n+1;i++){
            while(h<=t&&q[h]<i-m)h++;
            f[i]=f[q[h]]+1ll*a[i];
            while(h<=t&&f[q[t]]>=f[i])t--;
            q[++t]=i;
        }
        cout<<sum-f[n+1];
    }
    
    未经许可,禁止搬运。
  • 相关阅读:
    学习笔记——Maven 如何处理传递性依赖
    gitlab 部署
    jenkins部署
    python 使用json格式转换
    php加载memcache
    centos6.5 apache+tomcat结合 负载均衡
    linux部署tomcat
    linux安装java环境
    kickstart安装
    cobbler部署
  • 原文地址:https://www.cnblogs.com/ghostcai/p/9723881.html
Copyright © 2011-2022 走看看