QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#667453#7733. Cool, It’s Yesterday Four Times MoreD06WA 1ms5788kbC++141.7kb2024-10-22 23:10:342024-10-22 23:10:39

Judging History

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

  • [2024-10-22 23:10:39]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5788kb
  • [2024-10-22 23:10:34]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
bool f[1005][1005];
bool b[1005][1005];
int v[5005][5005];
const int dx[]={0,0,1,-1};
const int dy[]={1,-1,0,0};
int n,m;
int id(int i,int j)
{
	return (i-1)*m+j;
}
int ans,x,y;
bool dfs(int i1,int j1,int i2,int j2)
{
	if(!f[i1][j1])
	{
		return false;
	}
	if(f[i1][j1]&&!f[i2][j2])
	{
		return true;
	}
	if(v[id(i1,j1)][id(i2,j2)])
	{
		return v[id(i1,j1)][id(i2,j2)]==1? true:false;
	}
	b[x][y]=true;
	for(int i=0;i<4;i++)
	{
		x+=dx[i];
		y+=dy[i];
		if(b[x][y]==false)
		{
			v[id(i1,j1)][id(i2,j2)]|=dfs(i1+dx[i],j1+dy[i],i2+dx[i],j2+dy[i]);
		}
		y-=dy[i];
		x-=dx[i];
	}
	b[x][y]=false;
	if(!v[id(i1,j1)][id(i2,j2)])
	{
		v[id(i1,j1)][id(i2,j2)]=-1;
		return false;
	}
	return true;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		cin>>n>>m;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				char c;
				cin>>c;
				if(c=='.')
				{
					f[i][j]=true;
				}
			}
		}
		for(int i=1;i<=n*m;i++)
		{
			for(int j=1;j<=n*m;j++)
			{
				v[i][j]=0;
			}
		}
		ans=0;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				if(f[i][j])
				{
					bool pd=true;
					for(int k=1;k<=n;k++)
					{
						for(int l=1;l<=m;l++)
						{
							if(f[k][l]&&id(i,j)!=id(k,l))
							{
								if(!v[id(i,j)][id(k,l)])
								{
									x=y=0;
									dfs(i,j,k,l);
								}
								if(v[id(i,j)][id(k,l)]==-1)
								{
									pd=false;
								}
							}
						}
					}
					ans+=(pd==true);
				}
			}
		}
		cout<<ans<<"\n";
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				f[i][j]=false;
			}
		}
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 5788kb

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: 5760kb

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
2
0
0
1
0
5
7
3
4
0
3
2
2
0
1
6
2
4
2
0
0
4
3
3
1
2
1
0
5
2
2
2
4
2
0
5
2
2
2
0
3
6
3
3
2
2
2
4
2
1
0
3
3
3
3
2
2
0
6
5
2
5
4
3
2
3
2
1
2
1
2
0
0
2
3
1
2
4
6
1
4
2
2
2
4
3
2
1
0
1
5
3
3
10
0
2
2
1
0
0
2
2
1
3
2
6
3
0
3
4
2
4
1
2
3
2
0
2
9
2
2
3
0
2
4
3
2
1
2
2
0
3
0
13
3
3
2
4
0
7
2
3
1
...

result:

wrong answer 7th lines differ - expected: '3', found: '2'