zoukankan      html  css  js  c++  java
  • 分组

    题目描述

    在Farmer John最喜欢的节日里,他想要给他的朋友们赠送一些礼物。由于他并不擅长包装礼物,他想要获得他的奶牛们的帮助。你可能能够想到,奶牛们本身也不是很擅长包装礼物,而Farmer John即将得到这一教训。
    Farmer John的N头奶牛((1≤N≤10^4))排成一行,方便起见依次编号为1…N。奶牛i的包装礼物的技能水平为(s_i)。她们的技能水平可能参差不齐,所以FJ决定把她的奶牛们分成小组。每一组可以包含任意不超过K头的连续的奶牛((1≤K≤10^3)),并且一头奶牛不能属于多于一个小组。由于奶牛们会互相学习,这一组中每一头奶牛的技能水平会变成这一组中水平最高的奶牛的技能水平。

    请帮助FJ求出,在他合理地安排分组的情况下,可以达到的技能水平之和的最大值。

    输入描述:

    输入的第一行包含N和K。以下N行按照N头奶牛的排列顺序依次给出她们的技能水平。技能水平是一个不超过10^5的正整数。

    输出描述:

    输出FJ通过将连续的奶牛进行分组可以达到的最大技能水平和。

    输入

    7 3
    1
    15
    7
    9
    2
    5
    10
    

    输出

    84
    

    说明

    在这个例子中,最优的方案是将前三头奶牛和后三头奶牛分别分为一组,中间的奶牛单独成为一组(注意一组的奶牛数量可以小于K)。这样能够有效地将7头奶牛的技能水平提高至15、15、15、9、10、10、10,和为84。

    dp一开始没想到,当然是看了题解。
    dp[i]=max(dp[i],dp[j-1]+(i-j+1)*maxn), 其中,maxn=max(s[j],s[j+1]......,s[i])

    #include<bits/stdc++.h>
    using namespace std;
    inline char gc() {
        static char buf[100000],*L=buf,*R=buf;
        return L==R&&(R=(L=buf)+fread(buf,1,100000,stdin),L==R)?EOF:*L++;
    }
    template<typename T>
    inline void read(T&x) {
        int f=1;
        char ch=gc();
        x=0;
        while (ch<'0'||ch>'9') {
            if(ch=='-')f=-1;
            ch=gc();
        }
        while (ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+ch-48,ch=gc();
        x*=f;
    }
    int n,k,s[10010],dp[10010]={0};
    int main(){
        read(n),read(k);
        for(int i=1;i<=n;++i)read(s[i]);
        for(int i=1;i<=n;++i){
            int M=s[i];
            for(int j=i;j>0&&i-j<k;--j){
                M=max(M,s[j]);
                dp[i]=max(dp[i],dp[j-1]+M*(i-j+1));
            }
        }
        printf("%d",dp[n]);
        return 0;
    }
    
  • 相关阅读:
    解决SharePoint 文档库itemadded eventhandler导致的上传完成后,编辑页面保持报错的问题,错误信息为“该文档已经被编辑过 the file has been modified by...”
    解决SharePoint 2013 designer workflow 在发布的报错“负载平衡没有设置”The workflow files were saved but cannot be run.
    随机实例,随机值
    Spring4笔记
    struts2笔记(3)
    struts2笔记(2)
    获取文本的编码类型(from logparse)
    FileUtil(from logparser)
    DateUtil(SimpleDateFormat)
    struts2笔记
  • 原文地址:https://www.cnblogs.com/foursmonth/p/14144831.html
Copyright © 2011-2022 走看看