QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#273186 | #5070. Check Pattern is Bad | sio_ | TL | 4618ms | 3972kb | C++14 | 4.3kb | 2023-12-02 21:54:44 | 2023-12-02 21:54:45 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int t,n,m,k;
char a[105][105],tmp[105][105];
struct node{int x,y;};
vector<node> v;
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++)
{
v.clear();
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
if(a[i][j]=='?') v.push_back({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=0;i<v.size();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<=1000&&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=0;i<v.size();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=(int)v.size()-1;i>0;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: 1ms
memory: 3696kb
input:
3 2 2 ?? ?? 3 3 BW? W?B ?BW 3 3 BW? W?W ?W?
output:
YES WB WB NO YES BWW WWW WWW
result:
ok ok (3 test cases)
Test #2:
score: 0
Accepted
time: 696ms
memory: 3704kb
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 BW WW BB YES BW BB BB BW WW BB NO NO YES B W W B B W W W B W YES WBWW WWWB WWWB WBWW WWWW WWWW WBWW WWWW BWBW WWBW YES WBW WWW BBB WBB WBW WBW BBW WWW YES W B W B YES BBWB WBBB YES BBWBBB BWWBWB YES WWWWW YES BWWBWB WWBBBB BBBWWW WBWWWW YES B YES BWB BBB WBW BBB WWB WBB BBW WWW...
result:
ok ok (10000 test cases)
Test #3:
score: 0
Accepted
time: 670ms
memory: 3712kb
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 B B W B W YES WBBW BBWW WWWW WWWB BWWW BBWB WWWW BBWB WWWW YES BW BB BB YES BWBBWWB BWWBWWW NO NO YES WWB BWB BBB WBW WWW YES BWWWWWBBW WWWWBWWBW WWBWWWBBW BWWWWBBWW WWBWWWBWW WWWWWWBWB BWBWBBBWB YES WBWWBWW WBBWWWW WWBWWWW BWWWWWB BBBBWWB WBBBWBB WWWBWWW WWWWWWB WWWBBWW YES WB BB B...
result:
ok ok (10000 test cases)
Test #4:
score: 0
Accepted
time: 674ms
memory: 3712kb
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 WBWBBBW WWWWBBW WBBBBBB WWWBBBW WBWWBBB BBWBBBB BWWWBBW YES WBWWWW WWWWWW WWWWWW WWWBWW WWBBWW WBBWWB WBWWBB WWWWWW WWWBWW WWBBWB YES WBBBWW BBWBBB YES WWBWBBWW YES WB WB BB BB WW YES WBWBB WWWBB BBWWB WWWWW WBWWW WWWBB WBWWB NO YES WWWW WWBW WWBB WBBB WWWW BWWW WWBB WBBW WWWW BBWB YES BWWBBB BW...
result:
ok ok (10000 test cases)
Test #5:
score: 0
Accepted
time: 665ms
memory: 3972kb
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 WWWBWBWWB WWBBWBWWW BBBBWBWBW WWWWWWWWW WWWBWWWBW WBWWWWWWW BBWWWWBWB YES WWBBBBW BWWWWWW BWWBWBW YES BBBWWB YES W W W B W W B NO NO YES WBBWBBB NO YES WBB WWB BBB WBB BBW BWW BBB NO YES BBB BWB WWB BBB BBW BBW BBB BWW BBB BWB YES WW WB BB WW WB BB BB NO YES BB BB BW BB BB WB BB BB NO YES ...
result:
ok ok (10000 test cases)
Test #6:
score: 0
Accepted
time: 685ms
memory: 3744kb
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 WWBBBBBBWB YES BBWBWWBW BBWWWBBW WBWBBBBB BBBBBBBB WBBBBBBW YES WB BB WB WB WW WW YES WWWWBWWBWW YES BWB WWB BWB WWW NO YES WWBBBW NO YES B B B W W B B W B YES WWWWWWWWW WWBBBWBWW WWWWBBBWW WBWWWWWWW WWWBWBWWB WWWWWWWWW BWWWWWBWW WWWWWWWWB YES WWWW WWBW WBBW BBWW BWWB WWWB ...
result:
ok ok (10000 test cases)
Test #7:
score: 0
Accepted
time: 4618ms
memory: 3712kb
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 WWWWBWBWWW WWWWWWBWWW BWWWWWWWWW WWBWWWBWWB WWWWWWBWWW BWWBWWWWBW WWBBWWWBBW WWWWWWWWBW WWWWBWBWBW WWWWWWWWBW NO YES BBBBWBBWWB WWWBWBBBWB BWBBWWBBWW BBBBWWBBBW WBWBBWBBWW BBBBBWWWWB BBWBWWBBBB BWWBWWBWBB BBBBBBBWWW BBBWWWBBBB YES WBBBBBWWBB BBBWBBBWBB WBWWBWBBBB WBBBBBBBBB BBWBBWBBBB WBWB...
result:
ok ok (10000 test cases)
Test #8:
score: 0
Accepted
time: 4439ms
memory: 3648kb
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 WBBBBWBBBW BBWWWWWBBW BBBWWBBBBB BBWWBBBBBW WWWBBWWBBB BBWBWWWWWW BWWWWBBBWW BBWBBBBBWB WWWBBBBBBB BWBBBBBBBB NO YES BWWWWBBBBB WWWWWBWBWW WBWWWBWBWW WWWBWWWWWB WWBBWBBWWW BWWBWWWWWW WWWWWWWWBW WWWWBBWWWW BBWWWBWWBW WBBWWWWWBB YES BWWWWWWBWW WWWWBWBBWB WWBWWWWWWW WWBWWWWWWW WWWWBBWBWW WWWWWWWWWB...
result:
ok ok (10000 test cases)
Test #9:
score: 0
Accepted
time: 37ms
memory: 3700kb
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 WWWBBWBBBBWBBWBBWBBBWWBBWBBBWWBWBBWWBBBBBBBBWWBBBBBWBBBWBWWWBBBBBBWWBBBBBWBWWBWWWWWWWWWBWWBBBBWWWWBB YES WWBWWWBBBBBBWBWBWBWBWWWBBBBBWBBWBBWBBWWWBBWBBWBBWBBWBBWWWBBBBBWWWBBWBBWBWWBBBWBBWWWBBBWWBWBBBBBBBBWB YES WBWWWWBBBBBBWBBBBBBWBWWWBBBBWBBBBBBBWBBBBBWWWBBBWWBBBBWWWBBWBBBWBBBBBBBBWBBBWWBBWWBWWW...
result:
ok ok (10000 test cases)
Test #10:
score: 0
Accepted
time: 54ms
memory: 3876kb
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 B B B B B B B B B W B B B W B B B B B W W B W B B W B W W B W B B B B B B W W B W B B W W W W B B B B B B B B B B W B W B W B W W W B B B B W B W W B B W B W W B B W B B W B W W W B B B B B B W YES W W W W B W W W W W B W W W B B B W W B W W W W W B W B W W B W W W W W W W W W B 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 WBWWWWWWWW WWWWBBWWWW WWWWWWWWBB WWBWBWWWWB WWWWWWWWWW WWWWBWWWWW WBWWWWWWWW WWWWWWBWBW BBWWWBBWBW BWWBBBWWBW BBWWWWWWWW WWWWWBWWBW WWWWBBWWWW WWWWWWWWWB WWWBWWWWWB BWWWWWWWBB WWWWWBWWBW WWWBWWWWWW WWWWWBWWBW WBWBWWWWWW BBBBWBWBWB WBBWWBWWWW WWWWWWWWWB WBBBWBWWWW ...