暴搜+DP
题目分析:
时间复杂度是n^3,最多种情况是100*100*100种。
先求和,然后对和进行flip操作。
AC代码:
#include <stdio.h>
int const N = 105;
int main()
{
int s[N];
int MAX = -1;
int sum,sum1,n,i,j,k;
while(scanf("%d",&n)!=EOF){
sum = 0;
for(i=0; i<n; i++){
scanf("%d",&s[i]);
sum += s[i];
}
for(i=0; i<n; i++)
for(j=i; j<n; j++){
sum1 = sum;
for(k=i; k<=j; k++){
sum1 -= s[k];
sum1 += (1-s[k]);
//printf("%d,",sum1);
if(sum1>MAX) MAX = sum1;
}
}
printf("%d\n",MAX);
}
return 0;
}