[CSP-J 2024] 地图探险

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;

bool vis[N][N];
char mapp[N][N];
int n,m,k,x,y,d;
int T;

int ax[4]={0,1,0,-1};
int ay[4]={1,0,-1,0};

signed main() {
	cin>>T;
	while (T--) {
		memset(vis,0,sizeof(vis));
		cin>>n>>m>>k;
		cin>>x>>y>>d;
		vis[x][y]=1;
		for (int i=1;i<=n;++i) {
			for (int j=1;j<=m;++j) {
				cin>>mapp[i][j];
			}
		}
		while (k--) {
			int nx=x+ax[d],ny=y+ay[d];
			if (mapp[nx][ny]=='x'||nx>n||ny>m||nx<1||ny<1) {
				d=(d+1)%4;
			}
			else {
				x=nx,y=ny;
				vis[x][y]=1;
			}
		}
		int ans=0;
		for (int i=1;i<=n;++i) {
			for (int j=1;j<=m;++j) {
				if (vis[i][j]==1) ans++;
			}
		}
		cout<<ans<<endl;
	}
}
posted @ 2026-05-01 16:53  Pwtking  阅读(4)  评论(0)    收藏  举报