Codeforces #191(Div.2)-A. Flipping Game

暴搜+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;
}


 

你可能感兴趣的:(Codeforces #191(Div.2)-A. Flipping Game)