題目描述:
CF33C Wonderful Randomized Sum
思路:
當變化的前綴和后綴相同時,中間重疊的部分相當于沒有變化,
設前綴為A,后綴為B,中間重疊部分為C,總合為S,則
答案為-(A+B)+C,即2C-S的最大值,
ps:于是乎,這題配不上綠題,
這道橙題 ,一言以蔽之,就是最大子段和,
P1115 最大子段和
貼AC代碼:
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],s,maxs,sum;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sum+=a[i];
}
for(int i=1;i<=n;i++)
if(s+a[i]<0)s=0;
else{
s+=a[i];
maxs=max(s,maxs);
}
printf("%d",2*maxs-sum);
return 0;
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/306022.html
標籤:其他
下一篇:軟體測驗(白盒測驗與黑盒測驗)
