河工大玲珑校赛重现の 最大子段和

题目传送门:http://218.28.220.249:50015/JudgeOnline/problem.php?id=1266

1266: 最大子段和

时间限制: 1 秒  内存限制: 64 MB
提交: 482  解决: 147
提交 状态 

题目描述

一个大小为n的数组a1到an(−10^4≤ai≤10^4)。请你找出一个连续子段,使子段长度为奇数,且子段和最大。

输入

第一行为T(1≤T≤5),代表数据组数。
之后每组数据,第一行为n(1≤n≤10^5),代表数组长度。
之后一行n个数,代表a1到an

输出

每组数据输出一行,表示满足要求的子段和最大值

样例输入

1
4
1 2 3 4

样例输出

9


思路太多,,有的时候也是种错

 1 #include<stdio.h>
 2 #include<string.h>
 3 int a[110000];
 4 int main()
 5 {
 6     int t,i,n,p,max;
 7     scanf("%d",&t);
 8     while(t--)
 9     {
10         scanf("%d",&n);
11 
12         memset(a,0,sizeof(a));
13         
14         for(i=1;i<=n;i++)
15             scanf("%d",&a[i]);
16         max=a[1];
17         p=a[1];
18         for(i=2;i<n;i+=2)
19         {
20             p+=a[i]+a[i+1];
21             if(p<a[i+1])
22                 p=a[i+1];
23             if(max<p)
24                 max=p;
25         }
26         p=a[2];
27         for(i=3;i<n;i+=2)
28         {
29             p+=a[i]+a[i+1];
30             if(p<a[i+1])
31                 p=a[i+1];
32             if(max<p)
33                 max=p;
34         }
35         printf("%d
",max);
36     }
37     return 0;
38 }
原文地址:https://www.cnblogs.com/ljmzzyk/p/6801934.html