40pts求调
查看原帖
40pts求调
1088204
lulingrui楼主2024/11/6 22:28
#include <bits/stdc++.h>
using namespace std;
int t,n,m,k,x,y,d,chao,cnt,p,o;
char a[10005][10005];
void ox(){
	p=x,o=y;
	for(int g=1;g<=k;g++){
		if(chao==0){
			if(1<=p && p<=n && 1<=(o+1) && (o+1)<=m && a[p][o+1]=='.'){
				cnt++;
				o++;
			}
			else{
				chao=(chao+1)%4;
			}
		}
		else if(chao==1){
			if(1<=(p+1) && (p+1)<=n && 1<=o && o<=m && a[p+1][o]=='.'){
				cnt++;
				p++;
			}
			else{
				chao=(chao+1)%4;
			}
		}
		else if(chao==2){
			if(1<=p && p<=n && 1<=(o-1) && (o-1)<=m && a[p][o-1]=='.'){
				cnt++;
				o--;
			}
			else{
				chao=(chao+1)%4;
			}
		}
		else{
			if(1<=(p-1) && (p-1)<=n && 1<=o && o<=m && a[p-1][o]=='.'){
				cnt++;
				p--;
			}
			else{
				chao=(chao+1)%4;
			}
		}
	}
}
int main(){
	cin>>t;	
	while(t--){
		cin>>n>>m>>k>>x>>y>>d;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>a[i][j];
			}
		}
		if(d==0){
			chao=0;
			ox();
			cout<<cnt+1<<endl;
		}
		else if(d==1){
			chao=1;
			ox();
			cout<<cnt+1<<endl;
		}
		else if(d==2){
			chao=2;
			ox();
			cout<<cnt+1<<endl;
		}
		else{
			chao=3;
			ox();
			cout<<cnt+1<<endl;
		}
		p=0,o=0;
		cnt=0;
	}
	return 0;
}
2024/11/6 22:28
加载中...