​D - Omkar and Circle​

参考:​​Codeforces Round #655 (Div. 2) 题解 (ABCD)​​

由题意可得,每次只取\((n+1)/2\)个数,且只有一对数相邻。最后选取位置是奇数位或者偶数位。

用几个样例手推,来发现规律

// Created by CAD on 2020/7/12.
#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int maxn=2e5+5;
ll a[maxn],pre[maxn],suf[maxn];

int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n;cin>>n;
for(int i=1;i<=n;++i)
cin>>a[i],pre[i]=suf[i]=a[i];
for(int i=3;i<=n;++i)
pre[i]+=pre[i-2];
for(int i=n-2;i>=1;--i)
suf[i]+=suf[i+2];
ll ans=0;
for(int i=1;i<=n;++i)
ans=max(ans,pre[i]+suf[i+1]);
cout<<ans<<endl;
return 0;
}

CAD加油!欢迎跟我一起讨论学习算法,