• Codeforces Round #267 (Div. 2) C. George and Job dp


    C. George and Job
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    The new ITone 6 has been released recently and George got really keen to buy it. Unfortunately, he didn't have enough money, so George was going to work as a programmer. Now he faced the following problem at the work.

    Given a sequence of n integers p1, p2, ..., pn. You are to choose k pairs of integers:

    [l1, r1], [l2, r2], ..., [lk, rk] (1 ≤ l1 ≤ r1 < l2 ≤ r2 < ... < lk ≤ rk ≤ nri - li + 1 = m), 

    in such a way that the value of sum  is maximal possible. Help George to cope with the task.

    Input

    The first line contains three integers nm and k (1 ≤ (m × k) ≤ n ≤ 5000). The second line contains n integers p1, p2, ..., pn(0 ≤ pi ≤ 109).

    Output

    Print an integer in a single line — the maximum possible value of sum.

    Examples
    input
    5 2 1
    1 2 3 4 5
    output
    9
    input
    7 1 3
    2 10 7 18 5 33 0
    output
    61

     题意:找到k个区间大小为m的区间和最大值;

       思路:dp[i][t]=max(dp[i-1][t],dp[i-y][t-1]+sum[i-y+1]);

               取以第i个为区间结尾的区间;

    #include<bits/stdc++.h>
    using namespace std;
    #define ll __int64
    #define mod 1000000007
    #define esp 0.00000000001
    const int N=5e3+10,M=1e6+10,inf=1e9;
    ll dp[N][N];
    ll a[N];
    ll sum[N];
    int main()
    {
        int x,y,z,i,t;
        scanf("%d%d%d",&x,&y,&z);
        for(i=1;i<=x;i++)
        scanf("%lld",&a[i]);
        for(i=1;i<=x-y+1;i++)
        for(t=i;t<=i+y-1;t++)
        sum[i]+=a[t];
        for(i=1;i<=x;i++)
        {
            for(t=1;t<=z;t++)
            {
                if(i>=y)
                dp[i][t]=max(dp[i-1][t],dp[i-y][t-1]+sum[i-y+1]);
                else
                dp[i][t]=dp[i-1][t];
            }
        }
        printf("%lld
    ",dp[x][z]);
        return 0;
    }
  • 相关阅读:
    CentOS7.6安装Kubernetes v1.15.1
    数据库三大范式
    linux
    linux
    linux
    linux
    Django contenttypes组件
    Django自带的用户认证
    Django rest framework(7) ---分页
    Django rest framework(6) ---序列化
  • 原文地址:https://www.cnblogs.com/jhz033/p/5635568.html
Copyright © 2020-2023  润新知