题解
2026-02-23 12:05:49
发布于:广东
11阅读
0回复
0点赞
将环形转化为线性:复制一份数组数据,在长度为2*n的数组上寻找解。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+10;
int n,a[N],sum[N*2],ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i+n]=a[i];
}
for(int i=1;i<=n*2;i++){
sum[i]=sum[i-1]+a[i];
}
for(int len=2;len<=n;len++){
for(int l=1;l<=n*2-len+1;l++){
int r=l+len-1;
ans=max(ans,sum[r]-sum[l-1]);
}
}
cout<<ans;
return 0;
}
这里空空如也




有帮助,赞一个