大佬求看
查看原帖
大佬求看
1048582
sunjinnan楼主2025/7/26 13:28
#include<bits/stdc++.h>
using namespace std;
int T;
int n,m,k,num=1;
int x,y,b;
char a[1005][1005];
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
void dfs(int x,int y,int c,int b)
{
	if(c==0) 
	{
		return;
	}
	for(int i=b;i<=b+3;i++)
	{
		if(c==0) 
		{
			return;
		} 
		int xi=x+dx[i%4];
		int yi=y+dy[i%4];
		c=c-1;
		if(xi>=1&&yi>=1&&xi<=n&&yi<=m&&a[xi][yi]=='.')
		{
			a[xi][yi]='j';
			dfs(xi,yi,c,i);
			num++;
			break; 
		}
	}
}
int main()
{
	cin>>T;
	for(T;T>=1;T--)
	{	
		memset(a,'x',sizeof(a));
		cin>>n>>m>>k;
		cin>>x>>y>>b;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>a[i][j];
		dfs(x,y,k,b);
		cout<<num<<endl;
		num=1;
	}
	return 0;
} 
2025/7/26 13:28
加载中...