• hdu1244(dp)


    简单dp

    Max Sum Plus Plus Plus

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 949    Accepted Submission(s): 470


    Problem Description
    给定一个由n个正整数组成的整数序列

    a1 a2 a3 ... an

    求按先后次序在其中取m段长度分别为l1、l2、l3...lm的不交叠的连续整数的和的最大值。
     
    Input
    第一行是一个整数n(0 ≤ n ≤ 1000),n = 0表示输入结束
    第二行的第一个数是m(1 ≤ m ≤ 20),
    第二行接下来有m个整数l1,l2...lm。
    第三行是n个整数a1, a2, a2 ... an.
     
    Output
    输出m段整数和的最大值。
     
    Sample Input
    3 2 1 1 1 2 3 4 2 1 2 1 2 3 5 0
     
    Sample Output
    5 10
     
    Author
    JGShining(极光炫影)
     
    Recommend
    Ignatius.L
     
    #include <stdio.h>
    #include <iostream>
    using namespace std;
    #define INF 0x3ffffff
    
    int dp[22][1100];
    int k[22];
    int g[1100];
    int save[1100];
    
    int main()
    {
        int n,m;
        while(scanf("%d",&n)&&n)
        {
            scanf("%d",&m);
            for(int i=1;i<=m;i++)
                scanf("%d",k+i);
            int tmp=0;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",g+i);
                tmp+=g[i];
                save[i]=tmp;
            }
            for(int i=1;i<=m;i++)
                for(int j=1;j<=n;j++)
                    dp[i][j]=-INF;
            int sum=0;
            int tmx;
            for(int p=1;p<=m;p++)
            {
                sum+=k[p];
                tmx=-INF;
                for(int i=sum;i<=n;i++)
                {
                    tmx=max(dp[ p-1 ][ i-k[p] ],tmx);
                    dp[p][i]=tmx+save[i]-save[i-k[p]];
                }
            }
            int mx=-1;
            for(int i=1;i<=n;i++)
                mx=max(mx,dp[m][i]);
            printf("%d
    ",mx);
        }
        return 0;
    }
  • 相关阅读:
    Android之针对WebView的全屏播放
    Android之Android WebView常见问题及解决方案汇总
    android之针对fragment多次调用onCreateView的问题
    Android之在string.xml配置文字颜色粗体等效果
    ios成长之每日一遍(day 8)
    Android之TextView灵活使用
    ubuntu忘记root密码 的解决方法
    Mono Touch Table应用
    判断checkbox选中的个数
    C指针原理(14)
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/3182752.html
Copyright © 2020-2023  润新知