40分求调
查看原帖
40分求调
1349643
zms20130313楼主2024/11/3 11:26
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e3+5;
long long t,n,m,k,x,y,d;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
char mp[N][N];
int vis[N][N];
int main()
{
	cin>>t;
	while(t--){
		int res=1;
		memset(vis,0,sizeof vis);
		cin>>n>>m>>k>>x>>y>>d;
		for(int i=1; i<=n; i++){
			for(int j=1; j<=m; j++){
				cin>>mp[i][j];
			}
		}
		vis[x][y]=1;
		while(k--){
			int nx=x+dx[d];
			int ny=y+dy[d];
			if(nx<1||nx>n||ny<1||mp[nx][ny]=='x'){
				d=(d+1)%4;
			}
			else{
				x=nx;
				y=ny;
				if(!vis[x][y]){
					res++;
					vis[x][y]=1;
				}
			}
		}
		cout<<res<<endl;
	}
	return 0;
}

2024/11/3 11:26
加载中...