Poj 2479 Maximum sum
来源:互联网 发布:java多态的好处 编辑:程序博客网 时间:2024/04/30 11:16
MuQ~1WA了...嘲讽下...
1Y
裸地dp
和校赛的那个区间非常想
题意是数列两不想交连续子段和最大
DP
wl,wr,sum都没有用上....懒得改了
#include<stdio.h>#include<algorithm>using namespace std;#define N 50010int a[N],sum[N],n;int lmax[N],wl[N];//表示以i为结束的最大连续字段和 int rmax[N],wr[N];int ldp[N],rdp[N];int main(){int T;scanf("%d",&T);while(T--){scanf("%d",&n);int i;for(i=1;i<=n;i++)scanf("%d",&a[i]);sum[0]=0;for(i=1;i<=n;i++)sum[i]=sum[i-1]+a[i];lmax[1]=a[1],wl[1]=1;for(i=2;i<=n;i++){if(lmax[i-1]>0){lmax[i]=lmax[i-1]+a[i];wl[i]=wl[i-1];}else {lmax[i]=a[i];wl[i]=i;}}rmax[n]=a[n],wr[n]=n;for(i=n-1;i>=1;i--){if(rmax[i+1]>0){rmax[i]=rmax[i+1]+a[i];wr[i]=wr[i+1];}else {rmax[i]=a[i];wr[i]=i;}}ldp[1]=lmax[1];for(i=2;i<=n;i++)ldp[i]=max(lmax[i],ldp[i-1]);rdp[n]=rmax[n];for(i=n-1;i>=1;i--)rdp[i]=max(rmax[i],rdp[i+1]);int res=ldp[1]+rdp[2];for(i=2;i<n;i++)res=max(res,ldp[i]+rdp[i+1]);printf("%d\n",res);}return 0;}
- poj 2479 Maximum sum
- POJ 2479 Maximum sum
- POJ 2479 Maximum sum
- POJ 2479 Maximum sum
- poj 2479 Maximum sum
- Poj 2479 Maximum sum
- POJ-2479-Maximum sum
- POJ 2479 Maximum sum
- poj 2479 Maximum sum
- poj 2479 Maximum sum
- poj 2479 Maximum sum
- POJ 2479 Maximum sum
- POJ 2479 Maximum sum
- POJ 2479 Maximum sum
- poj 2479 - Maximum sum
- POJ 2479 Maximum sum
- POJ 2479 Maximum sum
- poj-2479 Maximum sum
- Linux文件查找命令find,xargs详述
- HttpWebRequest详解
- Motio:简单但功能强大的的 jQuery 精灵动画插件
- vim+cscope
- c++ const成员函数
- Poj 2479 Maximum sum
- java基础———第七天
- 【转载】4大 Java OSGi 框架比较 (Knopflerfish, Apache Felix, Equinox, Spring DM)
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- 安装Mysql数据库 以及乱码问题解决utf8
- 手机通过网络(wifi、3G)控制电脑和文件传输
- Java实现折半查找(二分查找)的递归和非递归算法
- Linux下面经常用到的几个命令
- vim命令添加版