QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#569218#7733. Cool, It’s Yesterday Four Times MorezhangjiahaoRE 2ms7536kbC++141.3kb2024-09-16 21:20:002024-09-16 21:20:00

Judging History

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

  • [2024-09-16 21:20:00]
  • 评测
  • 测评结果:RE
  • 用时:2ms
  • 内存:7536kb
  • [2024-09-16 21:20:00]
  • 提交

answer

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

int a[1005],f[1005][1005],n,m;
int pos(int x,int y) {
	return x*m+y-m;
}
void work() {
	memset(a,0,sizeof(a));
	memset(f,0,sizeof(f));
	cin>>n>>m;
	char c;
	for(int i=1;i<=n;i++) {
		for(int j=1;j<=m;j++) {
			cin>>c;
			if(c=='.') a[pos(i,j)]=1;
		}
	}
	queue<pair<int,int> > q;
	for(int i=1;i<=n*m;i++) {
		if(!a[i]) continue;
		for(int j=1;j<=n*m;j++) {
			if(!a[j]) continue;
			if(i>m&&a[i-m]&&(j<=m||!a[j-m])||i<=(n-1)*m&&a[i+m]&&(j>(n-1)*m||!a[j+m])||i%m!=1&&a[i-1]&&(j%m==1||!a[j-1])||i%m!=0&&a[i+1]&&(j%m==0||!a[j+1])) q.push(make_pair(i,j));
		}
	}
	while(!q.empty()) {
		int x=q.front().first,y=q.front().second;
		q.pop();
		if(f[x][y]) continue;
		f[x][y]=1;
		if(x>m&&y>m) q.push(make_pair(x-m,y-m));
		if(x<=(n-1)*m&&y<=(n-1)*m) q.push(make_pair(x+m,y+m));
		if(x%m!=1&&y%m!=1) q.push(make_pair(x-1,y-1));
		if(x%m!=0&&y%m!=0) q.push(make_pair(x+1,y+1));
	}
	int ans=0;
	for(int i=1;i<=n*m;i++) {
		if(!a[i]) continue;
		int flag=1;
		for(int j=1;j<=n*m;j++) {
			if(!a[j]||i==j) continue;
			flag&=f[i][j];
		}
		ans+=flag;
	}
	cout<<ans<<"\n";
}
int main() {
	int t;
	cin>>t;
	while(t--) work();
	return 0;
}
/*
4
2 5
.OO..
O..O.
1 3
O.O
1 3
.O.
2 3
OOO
OOO
*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 7536kb

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
Runtime Error

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
6
8
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

result: