QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#273224#5070. Check Pattern is Badsio_TL 3554ms3624kbC++144.7kb2023-12-02 22:11:202023-12-02 22:11:21

Judging History

你现在查看的是最新测评结果

  • [2023-12-02 22:11:21]
  • 评测
  • 测评结果:TL
  • 用时:3554ms
  • 内存:3624kb
  • [2023-12-02 22:11:20]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast,no-stack-protector,fast-math",3)
int t,n,m,k,cnt;
char a[105][105],tmp[105][105];
struct node{int x,y;}v[100005];
char p[2]={'B','W'};
int dx[8]={0,0,1,1,1,-1,-1,-1};
int dy[8]={1,-1,0,1,-1,0,1,-1};
void output()
{
    // if(t==10000) return ;
    cout<<"YES\n";
    for(int i=1;i<=n;i++,cout<<"\n")
        for(int j=1;j<=m;j++) cout<<tmp[i][j];
}
queue<node> q;
char check(int x,int y)
{
    char ans1='?',ans2='?',ans3='?',ans4='?';
    // cout<<"xsa";
    // cout<<ans1<<" "<<ans2<<" "<<ans3<<" "<<ans4<<"\n";
    if(x>1&&y>1&&tmp[x-1][y-1]=='B'&&tmp[x-1][y]=='W'&&tmp[x][y-1]=='W') ans1='B';
    else if(x>1&&y>1&&tmp[x-1][y-1]=='W'&&tmp[x-1][y]=='B'&&tmp[x][y-1]=='B') ans1='W';
    else ans1='?';
    if(x>1&&y<m&&tmp[x-1][y]=='B'&&tmp[x-1][y+1]=='W'&&tmp[x][y+1]=='B') ans2='W';
    else if(x>1&&y<m&&tmp[x-1][y]=='W'&&tmp[x-1][y+1]=='B'&&tmp[x][y+1]=='W') ans2='B';
    else ans2='?';
    if(x<n&&y>1&&tmp[x][y-1]=='B'&&tmp[x+1][y-1]=='W'&&tmp[x+1][y]=='B') ans3='W';
    else if(x>1&&y<m&&tmp[x][y-1]=='W'&&tmp[x+1][y-1]=='B'&&tmp[x+1][y]=='W') ans3='B';
    else ans3='?';
    if(x<n&&y<m&&tmp[x+1][y+1]=='B'&&tmp[x+1][y]=='W'&&tmp[x][y+1]=='W') ans4='B';
    else if(x<n&&y<m&&tmp[x+1][y+1]=='W'&&tmp[x+1][y]=='B'&&tmp[x][y+1]=='B') ans4='W';
    else ans4='?';
    if(ans1=='?'&&ans2=='?'&&ans3=='?'&&ans4=='?') return '?';
    else if(ans1!='B'&&ans2!='B'&&ans3!='B'&&ans4!='B') return 'B';
    else if(ans1!='W'&&ans2!='W'&&ans3!='W'&&ans4!='W') return 'W';
    else return '!';
}
bool cmp(node a,node b){return a.x+a.y<b.x+b.y;}
int main()
{
    // freopen("a.in","r",stdin);
    // freopen("a.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    srand(time(0));
    cin>>t;
    for(int l=1;l<=t;l++)
    {
        cin>>n>>m;
        cnt=0;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                cin>>a[i][j];
                if(a[i][j]=='?') v[++cnt]={i,j};
            }
        for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) tmp[i][j]=a[i][j];
        int flag=0;
        for(int i=1;i<=cnt;i++)
        {
            if(check(v[i].x,v[i].y)!='?'&&check(v[i].x,v[i].y)!='!') tmp[v[i].x][v[i].y]=check(v[i].x,v[i].y);
            else continue;
        }
        for(int c=1;c<=750&&flag==0;c++)
        {
            for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) tmp[i][j]=a[i][j];
            for(int i=1;i<=cnt;i++)
            {
                if(tmp[v[i].x][v[i].y]!='?') continue;
                int f=0;
                char ans=check(v[i].x,v[i].y);
                if(ans=='!'){tmp[v[i].x][v[i].y]='B';break;}
                if(ans=='?') tmp[v[i].x][v[i].y]=p[rand()%2];
                else tmp[v[i].x][v[i].y]=ans;
            }
            for(int i=1;i<=cnt;i++)
            {
                if(tmp[v[i].x][v[i].y]!='?') continue;
                int f=0;
                char ans=check(v[i].x,v[i].y);
                if(ans=='!'){tmp[v[i].x][v[i].y]='B';break;}
                if(ans=='?') tmp[v[i].x][v[i].y]=p[rand()%2];
                else tmp[v[i].x][v[i].y]=ans;
            }
            for(int i=1;i<=cnt;i++)
            {
                if(tmp[v[i].x][v[i].y]!='?') continue;
                int f=0;
                char ans=check(v[i].x,v[i].y);
                if(ans=='!'){tmp[v[i].x][v[i].y]='B';break;}
                if(ans=='?') tmp[v[i].x][v[i].y]=p[rand()%2];
                else tmp[v[i].x][v[i].y]=ans;
            }
            int f=0;
            for(int i=1;i<n;i++)
                for(int j=1;j<m;j++)
                    if(tmp[i][j]==tmp[i+1][j+1]&&tmp[i][j+1]==tmp[i+1][j]&&tmp[i][j]!=tmp[i][j+1]) f=1;
            // for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(f==0&&tmp[i][j]=='?')
            // {
            //     f=1;
            //     cout<<n<<" "<<m<<"\n";
            //     for(int i=1;i<=n;i++,cout<<"\n") for(int j=1;j<=m;j++) cout<<a[i][j];
            //     for(int i=1;i<=n;i++,cout<<"\n") for(int j=1;j<=m;j++) cout<<tmp[i][j];
            //     for(int i=0;i<v.size();i++) cout<<'('<<v[i].x<<","<<v[i].y<<")"<<" ";
            //     cout<<"\n";
            //     cout<<check(i,j)<<"\n";
            //     for(int i=1;i<=n;i++,cout<<"\n") for(int j=1;j<=m;j++) cout<<tmp[i][j];
            // }
            if(f==1) continue;
            flag=1;
            output();
            break;
        }
        if(flag==0) cout<<"NO\n";
    }
}
/*
5
2 6
??????
W???B?
2 6
??????
W???B?
2 6
??????
W???B?
5 10
?WW????W??
BW?W???WBW
BW??WB????
???W??????
?W????B???
5 10
?WW????W??
BW?W???WBW
BW??WB????
???W??????
?W????B???
*/

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3564kb

input:

3
2 2
??
??
3 3
BW?
W?B
?BW
3 3
BW?
W?W
?W?

output:

YES
WB
BB
NO
YES
BWW
WWW
BWW

result:

ok ok (3 test cases)

Test #2:

score: 0
Accepted
time: 528ms
memory: 3576kb

input:

10000
9 2
BB
BW
WW
WW
?W
?B
B?
W?
BB
6 2
??
?B
B?
BW
WW
??
10 7
WBBBW??
???BWWW
???BWWB
??WWBW?
BBWBBWB
WWB?WW?
BWBW???
WWWWBBW
BBWBB?W
B?W?W?B
4 7
??WBWWB
?BBWWWB
?W?BBB?
BBBWBBB
10 1
B
W
?
B
B
W
W
W
B
?
10 4
??WW
W?W?
WWW?
???W
?W??
?W?W
W?W?
?W?W
???W
???W
8 3
WBW
W??
???
???
W?W
W?W
???
?W?
4 1
...

output:

YES
BB
BW
WW
WW
WW
BB
BB
WB
BB
YES
BB
WB
BB
BW
WW
WB
NO
NO
YES
B
W
W
B
B
W
W
W
B
B
YES
BWWW
WWWB
WWWW
WWWW
BWWB
BWWW
WWWW
BWBW
BBBW
BBWW
YES
WBW
WBW
BBB
WBW
WWW
WWW
WBB
WWB
YES
W
B
W
B
YES
WBBB
WWBB
YES
BBWBBB
WBWWWB
YES
WBWWB
YES
BWBWWB
WWBBWB
BBBWWW
WBWWWW
YES
B
YES
BWB
BBB
WBB
BBB
WWB
WBB
BBW
BBW...

result:

ok ok (10000 test cases)

Test #3:

score: 0
Accepted
time: 509ms
memory: 3592kb

input:

10000
9 6
?B?W?W
WWBBWB
?WB?BW
B?W?W?
WW??W?
B???BW
?W?WW?
W?B?B?
?W?BB?
10 1
W
?
?
?
?
?
?
?
B
W
9 4
????
????
W???
?W?B
??WW
?BW?
WW?W
??W?
??W?
3 2
?W
?B
BB
2 7
?W?BWWB
??W???W
9 9
?BW?WWW?W
BW?WBBWWW
W?W????WW
W??WW??WW
W?BWB?B?W
??BB?WWWW
W???WBW?W
WWW???WWW
B?WWWWWW?
8 10
W??BWWW??B
?BWBWBW?BW...

output:

NO
YES
W
B
W
W
W
W
W
B
B
W
YES
BBWW
BBWW
WWWW
BWWB
BBWW
BBWW
WWWW
WWWB
WWWW
YES
WW
BB
BB
YES
WWBBWWB
WWWBWWW
NO
NO
YES
WWB
BWB
BBB
WBW
WWW
YES
WWBWWWBWW
WWWWWWBBW
WWBWBWWBW
WWWWWWWBW
WWBBWWBBW
WWWBWWWWW
WWWBWWBWB
YES
WBWBWWB
WBBBWBB
WWBWWWW
BWWWWBB
BBWBWWW
WBWBWBB
WWWBWWW
WWWWWWW
WWWWBWW
YES
WW
WB
W...

result:

ok ok (10000 test cases)

Test #4:

score: 0
Accepted
time: 518ms
memory: 3624kb

input:

10000
7 7
?B??BBW
????BB?
WBBB??B
WW?B???
?B??BBB
BBWB??B
B???BB?
10 6
W?WW??
W??W??
?WWWW?
?WW?WW
WW??W?
W?????
W?WW??
WW???W
WWW??W
?W??W?
2 6
?B??W?
B???BB
1 8
??BWB?W?
5 2
WB
W?
B?
BB
?W
7 5
W????
?WW??
???W?
WWWW?
W?W?W
?W?B?
W?WWB
8 5
B?WBW
B??WW
WWW?B
WBBWB
BW?WW
B?W?B
??WWB
BBW?B
10 4
WWWW
?...

output:

YES
WBBBBBW
WWBBBBB
WBBBBBB
WWBBWWB
WBBBBBB
BBWBBBB
BWWBBBW
YES
WWWWBB
WBWWWW
WWWWWB
BWWWWW
WWWWWW
WWBBBB
WWWWBB
WWBWWW
WWWWWW
WWWBWW
YES
BBBBWW
BBBBBB
YES
WWBWBWWW
YES
WB
WW
BW
BB
BW
YES
WBBWB
WWWWW
WBWWW
WWWWB
WBWWW
WWWBB
WBWWB
NO
YES
WWWW
BWBW
WWBW
WBBW
WWWW
BWWW
WWWB
WBBB
WBWW
BBWB
YES
BBWBBB
BW...

result:

ok ok (10000 test cases)

Test #5:

score: 0
Accepted
time: 517ms
memory: 3560kb

input:

10000
1 1
?
7 9
W?WB????B
?WB??B??W
BBB?W?WB?
WWW??WWW?
WW?B??W?W
?BWW??WWW
B?WW?W?WB
3 7
??BBBB?
BW?WW??
B??B?BW
1 6
?B?WWB
7 1
W
W
W
B
?
W
?
8 8
WW??W?B?
WWW?????
BB??WWWW
?W???WBW
BBW???WB
BWBWBWW?
?W?WW??B
BB?????W
10 8
WWW?W?BW
WB?W?WBW
WW?W?WBW
WWWW?WW?
WBWB?B?W
BW?BW??B
??WWBWWB
W?BW?BWW
W?W?...

output:

YES
W
YES
WWWBBBBWB
WWBBWBWWW
BBBWWBWBW
WWWWWWWWW
WWWBBBWBW
WBWWBBWWW
BBWWWWWWB
YES
WWBBBBW
BWWWWWW
BBBBBBW
YES
WBBWWB
YES
W
W
W
B
W
W
W
NO
NO
YES
WBBBBBW
NO
YES
WBW
WBB
BBB
WBB
BBW
WBB
BBB
NO
YES
BBB
BWB
WWB
WBB
WBW
WWW
WWB
BWW
BBB
BWB
YES
WW
BB
BB
BW
BB
BB
BB
NO
YES
BB
BB
BB
BB
BB
BB
BB
BB
NO
YES
...

result:

ok ok (10000 test cases)

Test #6:

score: 0
Accepted
time: 531ms
memory: 3540kb

input:

10000
9 1
W
B
?
B
W
W
?
W
B
1 10
W??????BWB
5 8
??W??WB?
?B?WWB?W
??????B?
BB??BBBB
WB??BBB?
6 2
?B
??
WB
?B
WW
W?
1 10
WW??BW?BW?
4 3
BW?
???
B?B
??W
10 10
WW?BBW?BW?
WW?BW?????
?WWBW?WB?W
???B?BBBBB
??BBBB?BBW
?WW??W?WBB
W??BB?WBBB
BBWBW?WBBW
?W????BWB?
??BW??WBWB
1 6
??B???
6 5
WBB?W
?WWWW
WWWW?
...

output:

YES
W
B
W
B
W
W
W
W
B
YES
WWWWWWWBWB
YES
BBWWWWBW
BBWWWBBW
WWWBWWBB
BBWBBBBB
WBBBBBBB
YES
WB
BB
WB
BB
WW
WB
YES
WWWWBWWBWW
YES
BWW
BBB
BWB
WWW
NO
YES
BWBWWW
NO
YES
B
B
B
W
W
B
B
B
B
YES
BWWWBWBWB
WWWWBWBWB
WWWWBBBBB
WBWWWWWWW
WBWWWWBWW
WBWWWWBWW
WWWWWWBWW
WWWWWWWWB
YES
WWWB
WWWW
WBWB
BBWW
WWWW
WBWW
...

result:

ok ok (10000 test cases)

Test #7:

score: 0
Accepted
time: 3554ms
memory: 3484kb

input:

10000
10 10
?W?WW?W??W
?BWBW?BBWW
?BB?WWW?W?
W?B?WWWWWW
?BWW?WWW?W
BWWWWWWW?W
WBBWW??B??
W??WW?W??W
WWWW?WW?W?
?W?BWW?WW?
10 10
WB?WBBWWWB
?WWWW?WB??
?B?BWW?BW?
WBWBW??W?W
B?WB?WBWWB
WWBWBBWW??
??WBBWBWBW
WWB??WWBWB
B?BWWWWBWW
WW?WWWBWWB
10 10
??W????WW?
?WW?W???W?
??W??WW?W?
WW??WW?WW?
?W??WW?WW?
?...

output:

NO
NO
YES
WWWBBWBWWB
WWWBWWWWWW
WBWBWWWBWB
WWWBWWWWWB
WWWWWWBWWW
BWWWBWWWWW
BWWWBWWBBW
WWWWBWWWBW
WWWWBBWWWW
WWWWWWWWBW
NO
YES
WWBBWBBBWB
WWWBBBBWWB
BWBBWWBBBB
BBBBWWBBWW
WBBBBWBBWB
BBBBBBBWWB
BWWBWBBWBB
BWWBWWBWBB
BBBBWBBWWB
WBBWWBBBWW
YES
WBWBBBBWBB
BBBBBBBWBB
BWBBWBBBBB
BWBWWBBBBB
BWBBBBBBBB
BBBB...

result:

ok ok (10000 test cases)

Test #8:

score: 0
Accepted
time: 3400ms
memory: 3544kb

input:

10000
10 10
?BBBBWBBB?
??W???WB??
BB?W???BB?
?B???BBB??
W??BB?WBBB
?B?B???W?W
?????BB???
?BW???B???
???BBB??BB
BWBBBBBBB?
10 10
BWW?WWB?BW
??B?WBBBWB
B??BB??BWB
BW?BWB???W
?WB?WWW?W?
B??B??W?BB
?WBB?WBB?B
BB??BBWBW?
WB??WBB?BW
?B???B?W??
10 10
??WWWB??BB
?WW???WBWW
???W??W?WW
?W?B?W?W??
WWB?WBB??W
B...

output:

YES
BBBBBWBBBW
WWWBBWWBBB
BBWWBBWBBB
WBBWWBBBBB
WBBBBBWBBB
WBBBWWWWBW
BBBWWBBWWW
WBWWBBBWBW
WWWBBBBWBB
BWBBBBBBBW
NO
YES
WBWWWBWBBB
WWWBBBWBWW
BWWWWBWBWW
BWBBWWWWWB
WWBBWBBWWW
BWWBWBBWWW
WWWBWWWWBW
WWWWWBWWWW
WBWWWBWWBW
WBBWWWWWBB
YES
BWWWWWBWWW
WWWWBWWWBB
WWBWWWWWWW
WWBBBWWWWW
WWWBWWWWWW
WWWWWWWBWW...

result:

ok ok (10000 test cases)

Test #9:

score: 0
Accepted
time: 33ms
memory: 3568kb

input:

10000
1 100
WWW?BWB?BB?BBW?BWBB?W??B?B?BWWBWB?WWB??BBBBB??BBBBB?BBBWBWWW?B?BBBWW??BBBW???B???W??W??BW?B?B?W??WB?
1 100
?WBW?WB?BBBB?BWBWB???WWB?BBB?BBW?B?B??W?B??BBW??WBBW???WW?BBBB?WWB?WBB???WBBB?BBW?W??BW?B??BBBBBBBWB
1 100
W?????BBB?BB?BB?????BWWWB?B???BB??????B??BWW???B??B?B???????BBB??B?BBB???B...

output:

YES
WWWWBWBBBBBBBWBBWBBBWWWBWBBBWWBWBBWWBBWBBBBBWBBBBBBBBBBWBWWWBBBBBBWWWBBBBWWWWBWWBWWWWBBBWBBBBWWBBWBB
YES
WWBWWWBWBBBBBBWBWBWWBWWBBBBBBBBWWBWBBWWBBWBBBWWBWBBWWBBWWBBBBBWWWBBWBBWBBWBBBBBBWBWBBBWWBWBBBBBBBBWB
YES
WWWWBWBBBBBBWBBBBBBWBWWWBBBBWBBBBWBBBWBBBBWWBBWBBBBBBBWWBWWBBBBBWBBBBBBBBBBWBWWWWBWWWB...

result:

ok ok (10000 test cases)

Test #10:

score: 0
Accepted
time: 58ms
memory: 3544kb

input:

10000
100 1
W
B
B
?
B
B
B
?
B
B
B
B
W
B
B
B
?
?
B
?
B
B
?
W
B
W
?
B
?
B
W
W
?
W
?
B
?
B
B
?
W
W
B
?
B
B
?
?
W
W
B
B
?
B
B
?
B
?
?
?
W
B
W
B
?
B
W
?
?
B
B
B
B
?
B
?
W
B
B
W
B
?
W
B
B
?
B
B
?
B
?
W
?
B
?
B
B
?
B
W
100 1
?
W
?
W
?
W
W
W
W
W
B
W
?
?
B
B
?
W
?
B
W
W
W
W
?
?
?
?
W
W
B
W
W
W
W
W
?
W
W
W
?
...

output:

YES
W
B
B
W
B
B
B
B
B
B
B
B
W
B
B
B
B
B
B
B
B
B
W
W
B
W
W
B
W
B
W
W
B
W
B
B
B
B
B
W
W
W
B
W
B
B
B
B
W
W
B
B
B
B
B
B
B
W
B
W
W
B
W
B
W
B
W
W
W
B
B
B
B
W
B
B
W
B
B
W
B
W
W
B
B
W
B
B
B
B
B
W
B
B
B
B
B
W
B
W
YES
B
W
B
W
B
W
W
W
W
W
B
W
W
W
B
B
W
W
B
B
W
W
W
W
W
W
B
B
W
W
B
W
W
W
W
W
B
W
W
W
W
W
B
W
W
B
...

result:

ok ok (10000 test cases)

Test #11:

score: -100
Time Limit Exceeded

input:

1000
100 10
WWWB?WWW?W
W????????W
WB?W??WW?W
WBB?WWW??B
?WWWW?WW?W
?WWWW?W?WB
?B??W?W???
WW?W?BWWW?
WW?B?W?W?W
????WW??W?
BWB??WWWW?
W??W??WW??
W?WBB??WWW
?WWBBWW?WW
?WBWW?B???
???WWW???W
??WW?WWW??
????W?BW?W
???W?W?W?W
?WW?WW?WB?
BW??WW?WW?
WB?WWWWW?W
??BWW??W?W
W??B?WWWW?
WWW?W??WWW
BBBW??W?W?
??...

output:

NO
NO
NO
NO
NO
NO
NO
YES
BBWBWWWBWW
WBWWWWWWWB
WWWWWBWWWW
WWBWWWWBBW
BWWWBWWWWW
WWWWWWWWWW
WWWWBWWWWW
WBWWWWWBWW
WWWWWWWWWW
WWWWBBWWWW
WWWBBBWBBW
BBWWBWWWWW
BWWBBBWBBW
WWWWWWWWWW
WBWWBWBWWB
WWWBBWWWWW
BWWWWWWWWB
WWWBWBWWBB
WWWBWWWWWW
WWWBWWWWBW
BBBBWBWWWW
BWWBWWWBWB
BBWWWBWBWW
WWWWWWWWWB
WBBBWBWWWW
...

result: