WA on #7 求助
查看原帖
WA on #7 求助
761125
Milthm楼主2023/1/22 21:05

rt,检查了好几遍也没看出问题。

#include<iostream>
using namespace std;
int n,m,x,y,x2,y2,b[1005][1005],v[4][2]={{0,1},{1,0},{0,-1},{-1,0}},q;
char a[1005][1005];
void dfs(int x,int y,int cnt){
	if(cnt>2)return;
	if(a[x][y]=='T'){
		cout<<"YES";
		exit(0);
	}
	for(int i=0;i<=3;i++){
		int px=x+v[i][0];
		int py=y+v[i][1];
		if(px>=1&&px<=n&&py>=1&&py<=m&&a[px][py]!='*'&&b[px][py]==0){
			b[px][py]=1;
			if(i!=q)cnt++;
			int q2=q;
			q=i;
			dfs(px,py,cnt);
			q=q2;
			b[px][py]=0;
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			if(a[i][j]=='S'){
				x=i;y=j;
			}
		}
	}
	b[x][y]=1;
	dfs(x,y,0);
	cout<<"NO";
    return 0;
}
2023/1/22 21:05
加载中...