Maximum sum(poj 2479)
生活随笔
收集整理的這篇文章主要介紹了
Maximum sum(poj 2479)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:給一段數列,將這個數列分成兩部分,使兩部分的最大子段和的和最大,輸出和 /*看數據沒想到是(O)n的算法,求出從前向后的最大子段和和從后向前的最大子段和,然后枚舉斷點。 第一次提交不小心折在數組最小值的賦值上……
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define M 50010
#define INF 1000000000
using namespace std;
int a[M],f1[M],f2[M],v1[M],v2[M],n;
int main()
{int T;scanf("%d",&T);while(T--){memset(f1,466,sizeof(f1));memset(f2,466,sizeof(f2));memset(v1,466,sizeof(v1));memset(v2,466,sizeof(v2));scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)f1[i]=max(f1[i-1]+a[i],a[i]),v1[i]=max(f1[i],v1[i-1]);for(int i=n;i>=1;i--)f2[i]=max(f2[i+1]+a[i],a[i]),v2[i]=max(f2[i],v2[i+1]);int ans=-INF;for(int i=1;i<n;i++)ans=max(ans,v1[i]+v2[i+1]);printf("%d\n",ans);}return 0;
} View Code
?
轉載于:https://www.cnblogs.com/harden/p/5934678.html
總結
以上是生活随笔為你收集整理的Maximum sum(poj 2479)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows64下安装MySQLdb连
- 下一篇: 查询进程打开的文件(转)