为啥RE了?
查看原帖
为啥RE了?
1616821
__owen__楼主2025/1/8 18:22
#include <bits/stdc++.h>
using namespace std;
int n,ans,m,sx,sy,tx,ty,flag;
const int N = 110;
char g[N][N];
int vis[N][N];
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};


void dfs(int x,int y){
	vis[x][y] = 1;
	
	if(x == tx && y == ty){
		flag = 1;
		return;
	}
	for(int i=0;i<4;i++){
		int nx=x+dx[i],ny=y+dy[i];
		
		if(nx<0||nx>=n||ny<0||ny>=m||vis[nx][ny]||g[nx][ny]=='#')continue;
		
		dfs(nx,ny);
	}
}
int main()
{
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=0;i<n;i++){
    	for(int j=0;j<m;j++){
    		cin>>g[i][j];
    		if(g[i][j] == 's') sx = i,sy = j;
    		if(g[i][j] == 'g') tx = i,ty = j;
		}
	}
	dfs(sx,sy);
	if(flag) cout << "Yes" << endl;
	else cout << "No" << endl;
    
    return 0;
}
2025/1/8 18:22
加载中...