奇数最大子段和 dp
来源:互联网 发布:vip影视盒子源码 编辑:程序博客网 时间:2024/05/22 00:05
Description
一个大小为n的数组a1到an(−10^4≤ai≤10^4)。请你找出一个连续子段,使子段长度为奇数,且子段和最大。
Input
第一行为T(1≤T≤5),代表数据组数。
之后每组数据,第一行为n(1≤n≤10^5),代表数组长度。
之后一行n个数,代表a1到an
Output
每组数据输出一行,表示满足要求的子段和最大值
Sample Input
1
4
1 2 3 4
Sample Output
9
Hint
题意
如题
题解:
见代码
AC代码
#include<cstdio>#include <algorithm>using namespace std;int ax[100005];int main(){ int t; scanf("%d",&t); while (t--){ int n; scanf("%d",&n); for (int i = 0; i < n; ++i){ scanf("%d",&ax[i]); } int ans,sum; //查询所有奇数段的和 记录最大值 很巧妙 ans = ax[0]; sum = ax[0]; for (int i = 1; i < n-1; i+=2){ sum =sum + ax[i]+ax[i+1]; if (sum < ax[i+1]){ sum = ax[i+1]; } if (ans < sum) ans = sum; } sum = ax[1]; for (int i = 2; i < n-1; i+=2){ sum = sum + ax[i]+ax[i+1]; if (sum < ax[i+1]){ sum = ax[i+1]; //为什么不是0?因为重置为0就不能保证记录的是 奇数 段的和了 } if (ans < sum) ans = sum; } ans = max(sum,ans);//n == 3上面不执行 printf("%d\n",ans); } return 0;}
0 0
- 奇数最大子段和 dp
- HAUTOJ奇数最大子段和
- 最大子段和【DP】
- 最大子段和 (dp)
- POJ 2479 最大子段和dp
- DP最大M子段和
- DP -- 最大连续子段和
- DP-循环数组最大子段和
- 最大连续子段和dp
- HAUTOJ 1266 最大子段和(dp)
- 最大子段和 经典dp
- 循环数组最大子段和 (dp)
- DP(最大子段和) 最大子矩阵 poj_1050
- 蓝桥杯 最大子阵(dp最大子段和)
- HDU1231 最大连续子序列【最大子段和+DP】
- Bailian2766 最大子矩阵【最大子段和+DP】
- 51Nod 1050 循环数组最大子段和(DP—最大子段和变形)
- 最大子段和
- OpenGL 的空间变换(上):矩阵在空间几何中的应用
- Python并发之多线程
- JAVA 静态工厂方法
- Android签名机制之---签名过程详解
- jQuery实现点击其他地方div隐藏
- 奇数最大子段和 dp
- 挖地雷问题 dfs
- 如何「优雅」地标数据
- Mask R-CNN
- mysql unoin排序
- 2017.4.20登录页面
- Zookeeper集群搭建- 奇葩问题解决1
- spring+springmvc+mybatis整合
- bzoj1877 SDOI2009晨跑 费用流