40分WA,大佬求调,必关!
查看原帖
40分WA,大佬求调,必关!
1228537
sinaean楼主2025/7/24 09:36
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,d,k,a,b,ans,T;
char g[1005][1005];
//int nx[]={1,0,-1,0};
//int ny[]={0,1,0,-1};
int nx[]={0,1,0,-1};
int ny[]={1,0,-1,0};
bool nz(int xx,int yy)
{
	return xx>=1&&xx<=n&&yy>=1&&yy<=m&&g[xx][yy]=='.';
}

void dfs(int xx,int yy)
{
	
	for(int i=0;i<4;i++)
	{
		if(nz(xx+nx[i],yy+ny[i]))
		{
			g[xx][yy]=1;
		}
	}
}
int main()
{
	cin>>T;
	while(T--)
	{
		cin>>n>>m>>k>>x>>y>>d;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>g[i][j];
			}
		}
		g[x][y]='!';
		for(int i=1;i<=k;i++)
		{
			if(nz(x+nx[d],y+ny[d]))
			{
				x+=nx[d];
				y+=ny[d];
				g[x][y]='!';
			}
			else
			{
				d=(d+1)%4;
			}
		}
		ans=0;
		//cout<<"\n"<<"\n";
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				//cout<<g[i][j];
				if(g[i][j]=='!')
				{
					ans++;
				}
			}
			//cout<<"\n";
		}
		cout<<ans<<"\n";
	}
	return 0;
}
2025/7/24 09:36
加载中...