1600*D. Maximum Sum on Even Positions(贪心)

编程入门 行业动态 更新时间:2024-10-10 01:24:28

1600*D. Maximum Sum on Even Positions(<a href=https://www.elefans.com/category/jswz/34/1769875.html style=贪心)"/>

1600*D. Maximum Sum on Even Positions(贪心)

Problem - 1373D - Codeforces

 解析:

        显然可以发现,翻转数量为奇数是不影响结果,所以需要反转偶数个连续数字。

        考虑贪心,我们每次反转相邻的两个数字,并且累计贡献,如果贡献为0则清空继续累计,并且每次取贡献最大值即可。

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
int t,n,a[N];
signed main(){scanf("%lld",&t);while(t--){scanf("%lld",&n);int sum=0;for(int i=1;i<=n;i++){scanf("%lld",&a[i]);if(i%2) sum+=a[i];}int p=0,q=0,res=0;for(int i=1;i<=n;i++){if(i%2&&i<n){if(p<0) p=0;p+=a[i+1],p-=a[i];}else if(i%2==0&&i<n){if(q<0) q=0;q+=a[i],q-=a[i+1];}res=max(res,max(p,q));}printf("%lld\n\n",sum+res);}return 0;
}

更多推荐

1600*D. Maximum Sum on Even Positions(贪心)

本文发布于:2023-12-06 07:14:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1666829.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:贪心   Maximum   Positions   Sum

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!