dynamic programming 从入门到放弃
Posted Zc粉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dynamic programming 从入门到放弃相关的知识,希望对你有一定的参考价值。
1. maxsum 最大连续子序列和
用d[i]表示以i结束的子序列和的最大值,状态转移方程为 d[i]=max{d[i-1]+a[i],a[i]},其中d[0]=a[0],然后对d[i] sort 取最大值
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int main() { int N; int a[100]; int d[100]; while(cin>>N) { int n; while(cin>>n) { memset(d,0,sizeof(d)); for(int i=0;i<n;i++) cin>>a[i]; d[0]=a[0]; for(int i=1;i<n;i++) { d[i]=max(d[i-1]+a[i],a[i]); } sort(d,d+n); cout<<d[n-1]<<endl; } } }
以上是关于dynamic programming 从入门到放弃的主要内容,如果未能解决你的问题,请参考以下文章
无人车动态规划(Dynamic Programming)入门
动态规划算法(dynamic programming algorithm)
GTD190023:翻译Dynamic Programming: First Principles