社区讨论
5分求调
P1238走迷宫参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mhk7bxkt
- 此快照首次捕获于
- 2025/11/04 14:42 4 个月前
- 此快照最后确认于
- 2025/11/04 14:42 4 个月前
C
#include<bits/stdc++.h>
using namespace std;
const int N=1e2+10;
int m,n,s[N][N],sx,sy,ex,ey,v[N][N]={};
struct jntm{
int x,y;
};
vector<jntm> ans;
jntm p;
void print(){
printf("(%d,%d)",sx,sy);
for(int i=1;i<=ans.size();i++) printf("->(%d,%d)",ans[i].x,ans[i].y);
printf("\n");
while(!ans.size()) ans.pop_back();
}
void dfs(int x,int y){
if(x==ex&&y==ey) print();
if(x<1||y<1||x>m||y>n||!s[x][y]||v[x][y]) return; p.x=x-1,p.y=y;
ans.push_back(p);
v[x][y]=1;
dfs(x-1,y);
ans.pop_back();
v[x][y]=0;
p.x=x,p.y=y+1;
ans.push_back(p);
v[x][y]=1;
dfs(x,y+1);
ans.pop_back();
v[x][y]=0;
p.x=x+1,p.y=y;
ans.push_back(p);
v[x][y]=1;
dfs(x+1,y);
ans.pop_back();
v[x][y]=0;
p.x=x,p.y=y-1;
ans.push_back(p);
v[x][y]=1;
dfs(x,y-1);
ans.pop_back();
v[x][y]=0;
}
int main(){
//freopen("zm.in","r",stdin);
//freopen("zm.out","w",stdout);
cin>>m>>n;
for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>s[i][j];
cin>>sx>>sy>>ex>>ey;
if(s[sx][sy]==0||s[ex][ey]==0){
cout<<-1;
exit(0);
}
dfs(sx,sy);
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...