zoukankan      html  css  js  c++  java
  • hdu 1024 Max Sum Plus Plus

    http://acm.hdu.edu.cn/showproblem.php?pid=1024

    状态转移方程: dp[j]=max(dp[j-1]+a[j],pre[j-1]+a[j]);

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #define maxn 1000010
     5 #define ll int
     6 using namespace std;
     7 const int inf=1<<29;
     8 
     9 ll dp[maxn],pre[maxn];
    10 int a[maxn];
    11 int n,m;
    12 ll max2;
    13 
    14 ll max1(ll a,ll b)
    15 {
    16     if(a>b) return a;
    17     return b;
    18 }
    19 
    20 int main()
    21 {
    22     while(scanf("%d%d",&m,&n)!=EOF)
    23     {
    24         for(int i=1; i<=n; i++)
    25         {
    26             scanf("%d",&a[i]);
    27         }
    28         memset(dp,0,sizeof(dp));
    29         memset(pre,0,sizeof(pre));
    30         for(int i=1; i<=m; i++)
    31         {
    32             max2=-inf;
    33             for(int j=i; j<=n; j++)
    34             {
    35                 dp[j]=max(dp[j-1]+a[j],pre[j-1]+a[j]);
    36                 pre[j-1]=max2;
    37                 max2=max(max2,dp[j]);
    38             }
    39         }
    40         printf("%d
    ",max2);
    41     }
    42     return 0;
    43 }
    View Code
  • 相关阅读:
    冲刺成果演示
    c#输入串字符不符
    课堂测试—数据清洗
    mapreduce实验
    问题纠错
    软件需求阅读笔记第一篇
    暑假第五周总结
    暑假第四周总结
    暑假第三周总结
    暑假第二周总结
  • 原文地址:https://www.cnblogs.com/fanminghui/p/3873286.html
Copyright © 2011-2022 走看看