40分求调
查看原帖
40分求调
1358038
Tgdoem楼主2024/11/19 21:05

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
bool v[N][N];
bool w[N][N];
int way[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
bool OK(int x,int y,int n,int m){
	if(x<1)return false;
	if(x>n)return false;
	if(y<1)return false;
	if(y>m)return false;
	return v[x][y];
}
int main(){
	int t;
	cin>>t;
	int qwq=0;
	while(t--){
		memset(w,false,sizeof(w));
		int n,m,k;
		cin>>n>>m>>k;
		int x,y,d;
		cin>>x>>y>>d;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				char a;
				cin>>a;
				if(a=='.')v[i][j]=true;
			}
		}
		w[x][y]=true;
		int s=1;
		while(k--){
			int nx=x+way[d][0],ny=y+way[d][1];
			if(OK(nx,ny,n,m)){
				x=nx;
				y=ny;
				if(!w[x][y])s++;
				w[x][y]=true;
			}else{
				d=(d+1)%4;
			}
		}
		cout<<s<<"\n";
	}
	return 0;
}
2024/11/19 21:05
加载中...