zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    Hadoop_33_Hadoop HA的搭建
    Hadoop_32_HDFS高可用机制
    Hadoop_31_MapReduce参数优化
    Hadoop_30_MapReduce_多job串联
    Hadoop_29_MapReduce_计数器应用
    Hadoop_28_MapReduce_自定义 inputFormat
    Hadoop_27_MapReduce_运营商原始日志增强(自定义OutputFormat)
    Hadoop_26_MapReduce_Reduce端使用GroupingComparator求同一订单中最大金额的订单
    Hadoop_25_MapReduce实现日志清洗程序
    干货 | 剑指offer系列文章汇总
  • 原文地址:https://www.cnblogs.com/jhz033/p/5635568.html
Copyright © 2011-2022 走看看