TLE10分求调
查看原帖
TLE10分求调
1411354
xf20280111楼主2025/2/6 20:18
#include<bits/stdc++.h>
using namespace std;
int dx[5] = {0,0,0,-1,1};
int dy[5] = {0,1,-1,0,0};
const int N=100+10;
int n,m;
int b[N][N];
char a[N][N];
int ans=0;
bool ok(int i,int j){
	return 1<=i and i<=n and 1<=j and j<=m and a[i][j]!='#';
}
void dfs(int x,int y){
	if (x==n and y==m){
		ans++;
		return ;
	}
	for (int i=1;i<=4;i++){
		int x2=x+dx[i],y2=y+dy[i];
		if (ok(x2,y2) and b[x2][y2]!=1){
			b[x2][y2]=1;
			dfs(x2,y2);	
			b[x2][y2]=0;
		}
	}
} 
int main(){
	cin>>n >> m;
	for (int i=1;i<=n;i++){
		for (int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	b[1][1]=1;
	dfs(1,1);
	if (ans == 0) cout << "No";
	else cout << "Yes";
	return 0;
}
2025/2/6 20:18
加载中...