求助(悬关)

P6207 [USACO06OCT] Cows on Skates G

@[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


|