QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#273191 | #5070. Check Pattern is Bad | sio_ | WA | 1196ms | 3864kb | C++14 | 4.3kb | 2023-12-02 21:57:53 | 2023-12-02 21:57:54 |
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<=100&&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: 3644kb
input:
3 2 2 ?? ?? 3 3 BW? W?B ?BW 3 3 BW? W?W ?W?
output:
YES BW BB NO YES BWB WWW BWB
result:
ok ok (3 test cases)
Test #2:
score: 0
Accepted
time: 102ms
memory: 3712kb
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 BW BB BW WW BB YES BB BB BW BW WW WW NO NO YES B W B B B W W W B B YES BWWW WWWB WWWW BWBW WWBB BWWW WWWW BWWW BBWW WBBW YES WBW WWW WBW BBW WWW WWW BWB WWW YES W B W W YES WBWB WWWB YES BWWBBB WWWWWB YES WBWWB YES BWWWWB WWBWWB BBBWWB WWWWWW YES B YES BWB BBB WBB WBB WWB BBB BBW WWW...
result:
ok ok (10000 test cases)
Test #3:
score: 0
Accepted
time: 99ms
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 W B B W YES BWWW BWBB WWWW BWWB BBWW WBWB WWWW WWWW WBWB YES WW WB BB YES WWBBWWB BWWBBWW NO NO YES WWB BWB BBB BBW WWW YES BWWWWWWWW BBWWBWWWB WWWBBBWWW WWWWWWWWW BWWWWWWBW WWWWWWWWW WWBBWWWWW YES WBWWWWB WBBBWBB WWWWWWW BBWWWBW WBWBWWW WWWBWBB WWWBWWW WWWWWWB BWWBBWW YES WW WW W...
result:
ok ok (10000 test cases)
Test #4:
score: 0
Accepted
time: 100ms
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 BBBBBBW BBBWBBW WBBBBBB WWWBBWW WBWBBBB BBWBBBB BWWBBBW YES WWWWBW WBWWBW WWWWWW WWWWWW WWBBWB WBBBBB WBWWBB WWWBBW WWWWBW WWBWWW YES WBBBWW BBBBBB YES BBBWBWWW YES WB WB BB BB WW YES WWBWB WWWWB BWBWB WWWWW WWWWW WWWBB WWWWB NO YES WWWW WBWW WBBB WBBW WWWW BWWW WWWB WWBB WWWW BBWB YES BWWBBB BB...
result:
ok ok (10000 test cases)
Test #5:
score: 0
Accepted
time: 99ms
memory: 3864kb
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 B YES WWWBBBBBB WWBBWBWBW BBBWWWWBW WWWWWWWWW WWWBBBWBW WBWWBWWWW BBWWWWBWB YES BBBBBBB BWBWWBB BBBBBBW YES BBBWWB YES W W W B W W B NO NO YES WBBBBBW NO YES WBB WBB BBB BBB BWB WWW BBB NO YES BBB BWB WWB BBB WBW WBW WBB BBW BBB BWB YES WW WB BB BW BB BW BB NO YES BB BB BB BB BB BB BB WB NO YES ...
result:
ok ok (10000 test cases)
Test #6:
score: 0
Accepted
time: 98ms
memory: 3604kb
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 B B W W B W B YES WBBBWWWBWB YES BWWWWWBW BBWWWBBW BBBWBBBW BBWWBBBB WBBWBBBB YES WB BB WB WB WW WW YES WWWBBWBBWB YES BWB BBB BBB BBW NO YES BWBWWB NO YES B B B W B B B B B YES WWWWBWWBW WWWBBWWWW WWWWBWBWW WBWWWWWWW WWWWWBWWW WBWWWBBWW WWWWWWBWW WWWWWWWWW YES WBBB WWWW WBBB BBWB WWWB WBWW ...
result:
ok ok (10000 test cases)
Test #7:
score: 0
Accepted
time: 602ms
memory: 3768kb
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 WWWBWBBWWB WWWBWWBWWB BWWWWWWWWW WWBWWWBWWW WWBWWWWWWB WWWWBWWWWW WBWWWWWWBB BBWWWWWWBB BWWWWWBWWB BWWWWBBWWW NO YES BBBBWBBBWB WWWBBBBWWB BWBBWWBBWW BBBBWWBBBW BBWBBWBBWW BBBBBBBBBB BWWBWWBWBW BBWBBWBWBB BBBBBBBWWB BBBWWBBBBB YES WBWBBBBBBB BBBBWBBWBB BWWBBBBBBW BWBBWBBBBB BWWBWWBBBB BBBB...
result:
ok ok (10000 test cases)
Test #8:
score: 0
Accepted
time: 586ms
memory: 3688kb
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 BBWBWWWBWW BBWWWBBBBW BBBBWBBBWW WBWBBBWBBB BBBBWBWWWW BWWWWBBBBB BBWBBBBWWW BWWBBBWWBB BWBBBBBBBW NO YES WBWWWBWBBB WWWBWBWBWW WWWWWWWBWW BWWBWWWWWW WWBBWBBBWW BWWBWWBWWW WWWBWWWWBW WWWWWBWWWW WBWWWBBWBW WBBWWWWWBB YES WWBWWWWWWW WWWWBWWWWW WWBWWWWWWB WWBBWWBWWW WWWBBWWWWW WWWWBBBBWW...
result:
ok ok (10000 test cases)
Test #9:
score: 0
Accepted
time: 37ms
memory: 3628kb
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 WWWBBWBWBBWBBWBBWBBWWWWBWBBBWWBWBWWWBWWBBBBBBWBBBBBBBBBWBWWWBBWBBBWWWBBBBWWWWBBWBWWWWWWBWBBBBWWWWWBW YES BWBWWWBBBBBBWBWBWBWBWWWBBBBBBBBWBBBBBWWWBBBBBWWWWBBWBBBWWWBBBBWWWBWWBBBBWWBBBWBBWWWWBBWBBBBBBBBBBBWB YES WWWBBWBBBBBBBBBWBWBWBWWWBWBWBWBBBBBWBBBWWBWWWWBBWWBBBBBWBWBWBBBWWBWBBBWBBBBBWWWBWWWWBW...
result:
ok ok (10000 test cases)
Test #10:
score: 0
Accepted
time: 55ms
memory: 3656kb
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 W B B B B W B B B W B B W B B W W B W W B W B W W B W W B W B B W W W B B B B W B W W B B B B B W B W B W W B W B W B W W B B B B B W B B W B B W B W W B B W B B W B W W B B B B B W B W YES W W W W W W W W W W B W B W B B B W W B W W W W W B W B W W B W W W W W B W W W B W B W B B ...
result:
ok ok (10000 test cases)
Test #11:
score: -100
Wrong Answer
time: 1196ms
memory: 3760kb
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 WBWBWWWBBW WBWWWBWWWW WWWWWBWWWW WWWWWWWWBB WWWWBWWWWW WWWWBWWWWW WWWWBWWBWW WBWWWWWWWW WWWBBWWWWW BBWWWWBWWW BWWWBBBBBB BBWWWWWWWW BBWWWWBWBW WWWWBWWWWW WWWWBWBWBW WWWBBWWWWW WWWBWWWWWB WWWBWBWWBB WWWBWWWWWW WWWBWWBWBW BBBBWWWWBW BBWWWWWBBW BBBBWBWBWW WWWWWWWWWB WBWBWWWWWW ...
result:
wrong answer ans finds the answer, but out doesn't (test case 976)