30求调
查看原帖
30求调
1329906
wenxuliang楼主2024/11/4 22:22
#include<bits/stdc++.h>
using namespace std;
long long t,n,m,k,x,y,d,s;
int b[1005][1005];
int px[10]={1,0,-1,0};
int py[10]={0,1,0,-1};
char a[1005][1005],w;
void f(long long xx,long long yy,long long dd,long long kk){
	if(kk==0){
		return;
	}
	if(a[xx+py[dd]][yy+px[dd]]=='.'){
		if(b[xx+py[dd]][yy+px[dd]]==0){
			s++;
			b[xx+py[dd]][yy+px[dd]]=1;
		}
		//cout<<xx+py[dd]<<" "<<yy+px[dd]<<"\n";
		f(xx+py[dd],yy+px[dd],dd,kk-1);
	}
	else{
		//cout<<(dd+1)%4<<"\n";
		f(xx,yy,(dd+1)%4,kk-1);
	}
	
}
int main(){
	//freopen("explore.in","r",stdin);
	//freopen("explore.out","w",stdout);
	cin>>t;
	for(int i=1;i<=t;i++){
		cin>>n>>m>>k;
		cin>>x>>y>>d;
		s=1;
		for(int j=1;j<=n;j++){
			for(int l=1;l<=m;l++)a[j][l]=0,b[j][l]=0;
		}
		for(int j=1;j<=n;j++){
			for(int l=1;l<=m;l++){
				cin>>a[j][l];
			}
		}
		f(x,y,d,k);
		cout<<s<<"\n";
	}
	return 0;
}
2024/11/4 22:22
加载中...