牛客--2024中国传媒大学程序设计大赛(同步赛)--A题解
A-小苯的区间和疑惑
题意:![](https://img2024.cnblogs.com/blog/3142690/202403/3142690-20240324144051447-1444559810.png)
做法:前缀最大值+后缀最大值 or 线段树维护最大子段和
int arr[200005],pre[200005],last[200005];
void solve(){ //小笨的区间和疑惑--前缀最大值+后缀最大值 or 线段树维护最大自段和
int n; cin>>n;
for(int i=1;i<=n;i++) cin>>arr[i];
for(int i=1;i<=n;i++) pre[i]=max(pre[i-1]+arr[i],arr[i]);
for(int i=n;i>=1;i--) last[i]=max(last[i+1]+arr[i],arr[i]);
for(int i=1;i<=n;i++) cout<<pre[i]+last[i]-arr[i]<<" ";
}
G还没补出来..