10分,求助
查看原帖
10分,求助
1473406
LYX20120816楼主2024/10/26 21:59
#include<bits/stdc++.h>
using namespace std;
char s[1005][1005];
int t;
int n,m,k;
int x,y,d;
int xo=0,yo=0,ans=0;
int vis[1005][1005];
int main(){
	scanf("%d",&t);
	while(t){
		t--;
		ans=1;
		scanf("%d%d%d",&n,&m,&k);
		scanf("%d%d%d",&x,&y,&d);
		xo=x;
		yo=y;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>s[i][j];
				vis[i][j]=0;
			}
		}
		while(k){
			if(d==0){
				if(s[xo][yo+1]=='.'){
					if(vis[xo][yo+1]==0)
					ans++;
					vis[xo][yo+1]=1;
					yo+=1;
				}
				else d=(d+1)%4;
				k--;
			}
			if(d==1){
				if(s[xo+1][yo]=='.'){
					if(vis[xo+1][yo]==0)
					ans++;
					vis[xo+1][yo]=1;
					xo+=1;
				}
				else d=(d+1)%4;
				k--;
			}
			if(d==2){
				if(s[xo][yo-1]=='.'){
					if(vis[xo][yo-1]==0)
					ans++;
					vis[xo][yo-1]=1;
					yo-=1;
				}
				else d=(d+1)%4;
				k--;
			}
			if(d==3){
				if(s[xo-1][yo]=='.'){
					if(vis[xo-1][yo]==0)
					ans++;
					vis[xo-1][yo]=1;
					xo-=1;
				}
				else d=(d+1)%4;
				k--;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}
2024/10/26 21:59
加载中...