60分求调
查看原帖
60分求调
1252537
Li_Wenshuo楼主2024/11/5 19:00
#include<bits/stdc++.h>
using namespace std;
char a[1010][1010];bool s[1010][1010];
int b[10]={0,1,1,0,0,-1,-1,0};
int main(){
	freopen("explore.in","r",stdin);
	freopen("explore.out","w",stdout);
	int n,t,k,m,num,x,y,d,xn,xnn,ynn;
	cin>>t;
	for(int i=1;i<=t;i++){
		num=1;
		scanf("%d%d%d%d%d%d",&n,&m,&k,&x,&y,&d);
		s[x][y]=1;
		for(int z=1;z<=n;z++)
			for(int j=1;j<=m;j++)
				cin>>a[z][j];
		for(int z=1;z<=k;z++){
			xn=d*2;
			xnn=x+b[xn];
			ynn=y+b[xn+1];
			if(a[xnn][ynn]=='.'){
				x+=b[xn];
				y+=b[xn+1];
				if(!s[x][y]){
					num++;s[x][y]=1;
				}					
				continue;
			}
			else{
				d=(d+1)%4;
			}
		}
		cout<<num<<"\n";
		if(i==t) return 0;
		for(int z=1;z<=n;z++)
			for(int j=1;j<=m;j++)
				s[z][j]=0;
	}
	return 0;
}
2024/11/5 19:00
加载中...