POJ 2479 Maximum sum(DP)
来源:互联网 发布:matlab教程矩阵 编辑:程序博客网 时间:2024/06/05 11:22
题目链接:http://poj.org/problem?id=2479
应该是很水的一个DP,最大子段和,正方向求一次,反方向求一次,处理当前位置之前的最大值
枚举每一个位置获得最大值!
#include <iostream>#include <string.h>#include <algorithm>#include <stdio.h>using namespace std;#define maxn 60000#define MAX(a,b) (a>b?a:b)int rec[maxn],in[maxn],back[maxn];int n;int main(){ int i,j,k,t,a,ans; scanf("%d",&t); while(t--){ scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&rec[i]); in[0]=rec[0]; for(i=1;i<n;i++) if(in[i-1]>0) in[i]=rec[i]+in[i-1]; else in[i]=rec[i]; back[n-1]=rec[n-1]; for(i=n-2;i>=0;i--) if(back[i+1] > 0) back[i]=rec[i]+back[i+1]; else back[i]=rec[i]; a=in[0]; for(i=1;i<n;i++){ a=MAX(in[i],a);rec[i]=a; } a=back[n-1]; for(i=n-1;i>=0;i--){ a=MAX(a,back[i]);back[i]=a; } ans=in[0]+back[1]; for(i=0;i<n-1;i++){ ans=MAX(in[i]+back[i+1],ans); } printf("%d\n",ans); } return 0;}
- poj 2479 Maximum sum 【DP】
- POJ 2479 Maximum sum DP
- POJ 2479 Maximum sum(DP)
- POJ 2479 Maximum sum[DP]
- poj-2479 Maximum sum DP
- POJ 2479 Maximum sum ( DP )
- 【poj 2479】Maximum sum DP
- POJ 2479 Maximum sum dp
- POJ - 2479 《Maximum sum》 【线性DP】
- POJ 2479 - Maximum sum(线性DP)
- POJ 2479-Maximum sum(线性dp)
- POJ 2479 Maximum sum(双向DP)
- poj 2479 Maximum sum
- POJ 2479 Maximum sum
- POJ 2479 Maximum sum
- POJ 2479 Maximum sum
- poj 2479 Maximum sum
- Poj 2479 Maximum sum
- HDU 4721 Food and Productivity (二分+树状数组)
- ultraedit
- Ural 1732. Ministry of Truth 多串匹配KMP
- URAL 1741 Communication Fiend
- 比较两个文件相同的地方
- POJ 2479 Maximum sum(DP)
- 调用栈
- C语言运算符优先级 详细列表
- CODE 34: Recover Binary Search Tree
- priority_queue用法小结
- hdu 1890伸展树(splay tree)区间翻转
- My Summer at Mozilla
- 数据结构之(平衡二叉树)
- Spring中AOP的几个概念