UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#212081#3818. 01游戏Rainxcy00ms0kbC++915b2024-10-13 11:02:102024-10-13 12:40:07

answer

#include <bits/stdc++.h>
using namespace std;
string s;
int n,Max=0;
void dfs(int deep,string s);
int check(string s);
int main()
{

    cin>>s;
    
    n=s.size();
    dfs(n,s);
    printf("%d\n",Max);
    return 0;
}
void dfs(int deep,string s){
    if(deep<0){

        int k=check(s);
        if(k>Max){
            Max=k;
        }
        return;
    }
    dfs(deep-1,s);
    string t=s;
    for(int i=0;i<deep;i++){
        t[i]=(t[i]=='0'?'1':'0');
    }
    for(int i=deep;i<=(n-1+deep)/2;i++){
        swap(t[i],t[n-1-i+deep]);
    }

    dfs(deep-1,t);
}

int check(string s){
    int M=0,i=0;
    while(i<n){
        char c;
        c=((s[i]=='0')?'1':'0');

        int z=i;
        i++;
        while(s[i]==c){
            c=((s[i]=='0')?'1':'0');
            i++;
        }
        if(i-z>M){
            M=i-z;
        }
    }
    return M;
}

详细

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 0
Time Limit Exceeded

Test #1:

score: 0
Time Limit Exceeded

input:

11000001100100000010

output:


result:


Subtask #2:

score: 0
Time Limit Exceeded

Test #9:

score: 0
Time Limit Exceeded

input:

1101111111000101001010110010010111010010111001000100101001010110110001100110011101010010001101001100...

output:


result:


Subtask #3:

score: 0
Time Limit Exceeded

Test #17:

score: 0
Time Limit Exceeded

input:

0101100001001111011100100000011100110100001001100110111000100001110101010001010011000110001001110000...

output:


result:


Subtask #4:

score: 0
Memory Limit Exceeded

Test #25:

score: 0
Memory Limit Exceeded

input:

0001001111100010010111110001100000010001011100010011110001000101110010101011111100000101111100110100...

output:


result: