QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#314244#7733. Cool, It’s Yesterday Four Times MoreHqwqWA 0ms5936kbC++141.7kb2024-01-25 14:53:372024-01-25 14:53:37

Judging History

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

  • [2024-01-25 14:53:37]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:5936kb
  • [2024-01-25 14:53:37]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

int t,n,m,dp[1010][1010];
int mp[1010][1010];

void find(int x,int y){
	if (x>m && y>m && dp[x-m][y-m]==-1){
		dp[x-m][y-m]=1;
		find(x-m,y-m);
	}
	if (x<=m*(n-1) && y<=m*(n-1) && dp[x+m][y+m]==-1){
		dp[x+m][y+m]=1;
		find(x+n,y+m);
	}
	if (x%m!=1 && y%m!=1 && dp[x-1][y-1]==-1){
		dp[x-1][y-1]=1;
		find(x-1,y-1);
	}
	if (x%m!=0 && y%m!=0 && dp[x+1][y+1]==-1){
		dp[x+1][y+1]=1;
		find(x+1,y+1);
	}
	return;
}

int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d %d",&n,&m);
		for (int i=1;i<=n;i++){
			for (int j=1;j<=m;j++){
				char c;
				scanf("%c",&c);
				if (c=='\n'){
					j--;
					continue;
				}
				if (c=='.') mp[i][j]=1;
				if (c=='O') mp[i][j]=0;
			}
		}
		for (int i=1;i<=n*m;i++){
			for (int j=1;j<=n*m;j++){
				if (mp[(i-1)/m+1][(i-1)%m+1]==0) dp[i][j]=0;
				else if (mp[(j-1)/m+1][(j-1)%m+1]==0) dp[i][j]=1;
				else dp[i][j]=-1;
				if (i==j) dp[i][j]=1;
			}
		}
		for (int i=1;i<=n*m;i++){
			for (int j=1;j<=n*m;j++){
				if (dp[i][j]!=-1) continue;
				if (i>m && mp[(i-1)/m][(i-1)%m+1]!=0 && j<=m) dp[i][j]=1;
				if (i<=m*(n-1) && mp[(i-1)/m+2][(i-1)%m+1]!=0 && j>m*(n-1)) dp[i][j]=1;
				if (i%m!=1 && mp[(i-1)/m+1][(i-1)%m]!=0 && j%m==1) dp[i][j]=1;
				if (i%m!=0 && mp[(i-1)/m+1][(i-1)%m+2]!=0 && j%m==0) dp[i][j]=1;
			}
		}
		for (int i=1;i<=n*m;i++){
			for (int j=1;j<=n*m;j++){
				if (dp[i][j]==1) find(i,j);
			}
		}
		int cnt=0;
		for (int i=1;i<=n*m;i++){
			if (mp[(i-1)/m+1][(i-1)%m+1]==0) continue;
			int p=1;
			for (int j=1;j<=n*m;j++){
				if (dp[i][j]==-1){
					p=0;
					break;
				}
			}
			if (p) cnt++;
		}
		printf("%d\n",cnt);
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

4
2 5
.OO..
O..O.
1 3
O.O
1 3
.O.
2 3
OOO
OOO

output:

3
1
0
0

result:

ok 4 lines

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 5932kb

input:

200
2 4
OOO.
OO..
2 3
OOO
.O.
3 3
O.O
OOO
OO.
4 1
.
.
O
O
1 2
.O
1 1
.
2 5
.OO..
.O.O.
2 1
O
O
1 1
O
1 3
.OO
5 1
O
O
.
O
.
5 2
O.
..
O.
.O
..
5 3
...
...
.OO
..O
OOO
3 5
..O.O
.O.O.
.OO.O
5 2
.O
OO
O.
O.
..
2 1
O
O
3 5
.O.OO
O...O
..OO.
1 5
.....
5 1
O
.
O
.
.
5 3
OOO
OO.
.OO
OO.
O.O
2 1
O
.
5 2
O.
...

output:

3
0
0
2
1
1
3
0
0
1
0
7
9
4
4
0
6
5
2
0
1
6
4
5
2
0
0
5
3
3
1
4
1
0
7
5
2
3
7
3
0
6
2
2
2
0
4
6
6
3
3
2
3
5
2
1
0
3
3
4
4
2
2
0
7
6
4
11
5
3
2
5
2
1
2
1
4
0
0
2
5
1
4
6
6
1
6
2
2
3
4
5
2
1
0
1
9
3
4
11
0
3
2
1
0
0
4
3
1
4
3
8
3
0
3
6
2
5
1
3
3
4
0
2
11
2
2
4
0
4
4
6
2
1
2
3
0
5
0
16
4
3
2
6
0
8
3
3
...

result:

wrong answer 68th lines differ - expected: '8', found: '11'