QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#591160#7733. Cool, It’s Yesterday Four Times Morebruteforce_WA 1ms3616kbC++201.5kb2024-09-26 14:32:212024-09-26 14:32:25

Judging History

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

  • [2024-09-26 14:32:25]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3616kb
  • [2024-09-26 14:32:21]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
vector<vector<bool>> mp;
int n,m;
vector<vector<int>> dp;
int dfs(int x,int y,int bx,int by)
{
	if(dp[x*m+y][bx*m+by]!=-1) return dp[x*m+y][bx*m+by];
	if(mp[bx][by]==0) return dp[x*m+y][bx*m+by]=1;
	dp[x*m+y][bx*m+by]=0;
	for(int i=0; i<=3; i++)
	{
		int nx=x+dx[i],ny=y+dy[i],nbx=bx+dx[i],nby=by+dy[i];
		if(mp[nx][ny]==0) continue;
		dp[x*m+y][bx*m+by]|=dfs(nx,ny,nbx,nby);
	}
	return dp[x*m+y][bx*m+by];
}
void O_o()
{
	cin>>n>>m;
	mp.assign(n+2,vector<bool>(m+2,0));
	dp.assign((n+1)*(m+1)+1,vector<int>((n+1)*(m+1)+1,-1));
	vector<array<int,2>> a;
	for(int i=1; i<=n; i++)
	{
		string s;
		cin>>s;
		for(int j=0; j<m; j++)
		{
			if(s[j]=='.')
			{
				mp[i][j+1]=1;
				a.push_back({i,j+1});
			}
				
		}
	}
	int ans=0;
	for(int i=0; i<a.size(); i++)
	{
		for(auto j=0; j<a.size(); j++)
		{
			if(i==j) continue;
			auto [ax,ay]=a[i];
			auto [bx,by]=a[j];
			if(dp[ax*m+ay][bx*m+by]==-1)
				dp[ax*m+ay][bx*m+by]=dfs(ax,ay,bx,by);
		}
	}
	for(int i=0; i<a.size(); i++)
	{
		bool bz=1;
		for(auto j=0; j<a.size(); j++)
		{
			if(i==j) continue;
			auto [ax,ay]=a[i];
			auto [bx,by]=a[j];
			if(dp[ax*m+ay][bx*m+by]==0)
			{
				bz=0;
				break;
			}
		}
		ans+=bz;
	}
	cout<<ans<<"\n";
//	cout<<tot<<"\n";
}
signed main()
{
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	cout<<fixed<<setprecision(12);
	int T=1;
	cin>>T;
	while(T--)
	{
		O_o();
	}
}

詳細信息

Test #1:

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

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: 1ms
memory: 3616kb

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:

2
0
0
2
1
1
2
0
0
1
0
5
5
3
4
0
2
2
2
0
1
6
2
4
2
0
0
4
3
3
1
2
1
0
5
2
2
2
4
2
0
4
2
2
2
0
3
6
4
3
2
2
2
4
2
1
0
3
3
4
3
2
2
0
6
6
2
6
4
3
2
3
2
1
2
1
2
0
0
2
3
1
2
6
6
1
4
2
2
2
4
3
2
1
0
1
9
3
3
11
0
2
2
1
0
0
2
2
1
3
2
7
3
0
3
4
2
4
1
2
3
2
0
2
9
2
2
3
0
2
4
4
2
1
2
2
0
3
0
15
3
3
2
5
0
7
2
3
1
...

result:

wrong answer 1st lines differ - expected: '3', found: '2'