POJ-2479-Maximum sum-双向dp-2次连续区间和
来源:互联网 发布:印刷厂软件 编辑:程序博客网 时间:2024/06/07 22:31
http://poj.org/problem?id=2479
给出n个数,从中取出两端连续的区间,求他们的sum, 让你求出最大的sum,区间不能相交。
左边来一次 最大连续区间和,右边来一次最大连续区间和
dp_left[i]对应从左到右计算,从1到第i个位置的最大和
dp_right[i]对应从右到左计算,从n到第i个位置的最大和
那么for一遍所有的 dp_left[i]+ dp_right[i+1] 取一个最大的
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue>#include <map>#include <set>#include <vector>using namespace std; int tm[50005]; int max(int a,int b){return a<b?b:a;} int contrary_tm[50005];int dp_left[50005];int dp_right[50005];int n,m; void cal(int st,int ed,int dp[],int ttt[]) { int i,maxx=-1000000; int sum=0; for (i=st;i<=ed;i++) { sum+=ttt[i];if (sum>maxx) maxx=sum; dp[i]=maxx; if (sum <0) sum=0; } }int main(){ int t; cin>>t; while(t--) { cin>>n; int i; for (i=1;i<=n;i++) { scanf("%d",&tm[i]); contrary_tm[n-i+1]=tm[i]; } cal(1,n,dp_left,tm); cal(1,n,dp_right,contrary_tm); for (i=1;i<=n/2;i++) swap(dp_right[i],dp_right[n-i+1]);int maxx=dp_left[1]+dp_right[2]; for (i=1;i<n;i++) maxx=max(maxx,dp_left[i]+dp_right[i+1]); printf("%d\n",maxx); }return 0;}
0 0
- POJ-2479-Maximum sum-双向dp-2次连续区间和
- Poj 2479 Maximum sum【双向DP/最大连续和】
- POJ 2479 Maximum sum(双向DP)
- POJ 2479 Maximum sum(2次最大字段和)
- POJ 2479 Maximum sum & POJ 2573 Max Sequence (DP,最大连续子串和)
- POJ 1050 To the Max && POJ 2479Maximum sum(DP最大连续子段和)
- poj 2479 Maximum sum(简单dp,最大连续和拓展)
- poj 2479 dp Maximum sum求两段连续不重叠子段的最大和
- POJ 2593 Max Sequence POJ 2479 Maximum sum (线性dp 最大连续两不重叠子段和)
- poj 2479 Maximum sum 最大数字连续和
- 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
- Java面向抽象编程的思想
- HDU 2253 Longest Common Subsequence Again
- EEG 学习记录
- 黑马程序员——C语言——数组
- delphi中需要熟悉的知识点
- POJ-2479-Maximum sum-双向dp-2次连续区间和
- C++11常用特性学习-保证稳定(_func_/long long/static_assert/final/override)
- 结构决定算法
- SSL构建单双向https认证!https部署及注意事项!
- 阿里云window服务器检查恶意攻击方法
- 使用ExpandableListView实现一个时光轴
- UI学习 第四章 UIImage UIImageView 手势
- statement with no effect 解决
- 使用自定义的xib文件进行启动页面的加载