80分求助
查看原帖
80分求助
1275502
hjhjhjkhjkklj楼主2025/1/16 21:33
#include<bits/stdc++.h>
#define ll long long
const ll maxn=10050;
using namespace std;
ll t;
char a[maxn][maxn];
bool f[maxn][maxn];
int main()
{
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		ll n,m,k,x,y,d,ans=0;
		
		cin>>n>>m>>k>>x>>y>>d;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>a[i][j];
				f[i][j]=0;
			}
		}
		f[x][y]=1;
		for(int i=1;i<=k;i++)
		{
			if(d==0)
			{
				if(a[x][y+1]=='.')
				{
					y+=1;
					f[x][y]=1;
				}
				else
				{
					d=(d+1)%4;
				}
			}
			else if(d==1)
			{
				if(a[x+1][y]=='.')
				{
					x+=1;
					f[x][y]=1;
				}
				else
				{
					d=(d+1)%4;
				}
			}
			else if(d==2)
			{
				if(a[x][y-1]=='.')
				{
					y-=1;
					f[x][y]=1;
				}
				else
				{
					d=(d+1)%4;
				}
			}
			else if(d==3)
			{
				if(a[x-1][y]=='.')
				{
					x-=1;
					f[x][y]=1;
				}
				else
				{
					d=(d+1)%4;
				}
			}
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				if(f[i][j]==1)
				{
					ans++;
				}
			}
		}
		cout<<ans<<endl;
	}
 	return 0;
}
2025/1/16 21:33
加载中...