求助(悬关)
查看原帖
求助(悬关)
1032960
Danny_chan楼主2024/4/17 21:33

求助大佬,40分。

代码:

#include<iostream>
using namespace std;
int ans[1000010][10],sum=1;
char a[1010][1010];
bool f[1010][1010];
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int n,m;
void dfs(int x,int y){
	if(x==n&&y==m){
		for(int i=1;i<=sum;i++){
			cout<<ans[i][1]<<" "<<ans[i][2]<<endl;
		}
		exit(0);
	}
	for(int i=0;i<4;i++){
		int x1=x+dx[i];
		int y1=y+dy[i];
		if(x1<=0||x1>n||y1<=0||y1>m) continue;
		if(a[x1][y1]!='.') continue;
		if(f[x1][y1]==true) continue;
		f[x1][y1]=true;
		sum++;
		ans[sum][1]=x1;
		ans[sum][2]=y1;
		dfs(x1,y1); 
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	f[1][1]=true;
	ans[1][1]=1;
	ans[1][2]=1;
	dfs(1,1);
	return 0;
}
2024/4/17 21:33
加载中...