最大字段和
来源:互联网 发布:好吃的白巧克力 知乎 编辑:程序博客网 时间:2024/06/06 06:44
点击打开链接
1266: 最大子段和
时间限制: 1 秒 内存限制: 64 MB提交: 404 解决: 101
提交 状态
题目描述
一个大小为n的数组a1到an(−10^4≤ai≤10^4)。请你找出一个连续子段,使子段长度为奇数,且子段和最大。
输入
第一行为T(1≤T≤5),代表数据组数。
之后每组数据,第一行为n(1≤n≤10^5),代表数组长度。
之后一行n个数,代表a1到an。
输出
每组数据输出一行,表示满足要求的子段和最大值
样例输入
141 2 3 4
样例输出
9
这题一开始没思路,也没花时间想。 写不出来真是太菜了。
因为是奇数个,那么一次加两个。 然后从二在开始一遍 就可以了。
#include<string> #include<vector> #include<queue> #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<set> #define ll long long #define x first #define y second #pragma comment(linker, "/STACK:102400000,102400000") using namespace std; const int mod=11; const int maxn=1e5+100; int a[maxn],dp[maxn]; int main(){ int T,n; scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&a[i]); ll ans,sum; ans=sum=a[1]; for(int i=2;i<n;i+=2){ sum+=a[i]+a[i+1]; if(sum<a[i+1]) sum=a[i+1]; if(sum>ans) ans=sum; }sum=a[2]; for(int i=3;i<n;i+=2){ sum+=a[i]+a[i+1]; if(sum<a[i+1]) sum=a[i+1]; if(sum>ans) ans=sum; } printf("%lld\n",ans); } return 0; }
0 0
- hdu1231 最大字段和
- 求最大字段和
- 最大字段和
- 最大子字段和
- 最大字段和问题
- 最大m字段和
- 最大字段和
- 最大字段和
- 最大字段和
- 最大字段和
- 算法最大字段和
- 最大字段和问题
- 最大字段和
- 最大字段和
- 最大字段和
- 最大字段和
- 最大字段和算法
- 最大字段和问题
- Anaconda更新失败
- 从输入 URL 到页面加载完成的过程中都发生了什么事情?
- cookie
- ACM递推递归练习总结
- 第九周:[Leetcode]93. Restore IP Addresses
- 最大字段和
- 读书笔记《Effective C++》条款02:尽量以const,enum,inline替换#define
- 数据流中的中位数
- [无异常,才正常] 加载属性文件内容报:Cannot load JDBC driver class ${jdbc.driverClassName}'
- iOS学习笔记--自定义通讯录
- logback日志详解
- 刘汝佳《算法竞赛入门经典(第二版)》习题(三)
- Trust Region Policy Optimization
- Oracle基本操作六:子查询,rownum,rowid