求大佬帮助,必关!!!前40分
查看原帖
求大佬帮助,必关!!!前40分
1300671
Halen1happy楼主2025/6/25 00:37

我实在看不出来哪里错了:

#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
char g[N][N];
bool vis[N][N];
int n,m,k,x,y,d,T,step;
int main(){
	scanf("%d",&T);
	while(T--){
		memset(g,0,sizeof g);	
		memset(vis,0,sizeof vis);	
		n=m=k=x=y=d=0;
		step=1;
		scanf("%d%d%d",&n,&m,&k);
		scanf("%d%d%d",&x,&y,&d);
		vis[x][y]=1;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>g[i][j];
			}
		}
		while(k--){
			if(d==0){
				if(g[x][y+1]=='.'&&y+1<=m&&!vis[x][y+1]){
					y+=1;
					step++;
					vis[x][y]=1;
					continue ;
				}
			}else if(d==1){
				if(g[x+1][y]=='.'&&x+1<=n&&!vis[x+1][y]){
					x+=1;
					step++;
					vis[x][y]=1;
					continue ;
				}
			}else if(d==2){
				if(g[x][y-1]=='.'&&y-1>=1&&!vis[x][y-1]){
					y-=1;
					step++;
					vis[x][y]=1;
					continue ;
				}
			}else{
				if(g[x-1][y]=='.'&&x-1>=1&&!vis[x-1][y]){
					x-=1;
					step++;
					vis[x][y]=1;
					continue ;
				}
			}
			d=(d+1)%4;
		}
		printf("%d\n",step);
		
	}
	return 0;
}
2025/6/25 00:37
加载中...