最大连续和(dp复习)
Posted iloveysm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大连续和(dp复习)相关的知识,希望对你有一定的参考价值。
最大连续和:给出一段序列,选出其中连续且非空的一段使得这段和最大。
stdin:
2 -4 3 -1 2 -4 3
stdout:
4
状态转移方程:dp[i]=max(dp[i-1]+a[i],a[i])
如果dp(i-1)已经为负数,那么前i-1段就没有意义了,我们直接从a[i]重新开始取。
#include<bits/stdc++.h> using namespace std; int a[1000],dp[1000]; int sum=-9999999; int main() { while(1) { cin>>n[i];//输入 char c=getchar(); if(c==‘ ‘) break; dp[i]=max(dp[i-1]+n[i],n[i]); sum=max(sum,dp[i]); } cout<<sum; return 0; }
以上是关于最大连续和(dp复习)的主要内容,如果未能解决你的问题,请参考以下文章