@[Danny_chan](/user/1032960) sum 回溯
```cpp
#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); sum--;
}
}
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;
}
by Dream_Creator @ 2024-04-17 21:42:12
谢谢大佬,已关。
by Danny_chan @ 2024-04-17 21:43:37