大犇(ba)们,救救孩子吧(玄关)
查看原帖
大犇(ba)们,救救孩子吧(玄关)
1235584
ycl220038楼主2024/12/14 17:12

救救我

救救我

救救我

怎么就TLE(已红温)

#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
bool b[1001][1001]={0},c=0;
char a[1001][1001];
void dfs(int x,int y){
	if(a[x][y]=='#')return;
	if(x==n&&y==m&&c==0){
		c=1;
		return;
	}
	if(b[x+1][y]==0&&a[x+1][y]=='.'){
		b[x][y]=1;
		dfs(x+1,y);
		b[x][y]=0;
	}
	if(b[x-1][y]==0&&a[x-1][y]=='.'){
		b[x][y]=1;
		dfs(x-1,y);
		b[x][y]=0;
	}
	if(b[x][y-1]==0&&a[x][y-1]=='.'){
		b[x][y]=1;
		dfs(x,y-1);
		b[x][y]=0;
	}
	if(b[x][y+1]==0&&a[x][y+1]=='.'){
		b[x][y]=1;
		dfs(x,y+1);
		b[x][y]=0;
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)cin>>a[i][j];
	}
	dfs(1,1);
	if(!c)cout<<"No";
  if(c)cout<<"Yes";
}
2024/12/14 17:12
加载中...