迷宫问题
来源:互联网 发布:特朗普越南知乎 编辑:程序博客网 时间:2024/06/06 10:03
#include<bits/stdc++.h>using namespace std;struct Point{ int x; int y;}tp;int dir[4][2]={0,1,0,-1,1,0,-1,0};int n,m;int Map[20][20];int flag[20][20];void dfs(vector<Point>&v,Point p) { if(p.x==n-1&&p.y==m-1) { for(int i=0;i<v.size();i++) { cout<<"("<<v[i].x<<","<<v[i].y<<")"<<endl; } return ; } for(int i=0;i<4;i++) { int tx=p.x+dir[i][0],ty=p.y+dir[i][1]; if(tx<n&&tx>=0&&ty<m&&ty>=0&&Map[tx][ty]==0&&flag[tx][ty]==0) { tp.x=tx,tp.y=ty; flag[tx][ty]=1; v.push_back(tp); dfs(v,tp); //用深搜第一次找到就是最短路 //回溯时用到以下两句,可求出所有可行路径 //flag[tx][ty]=0; //v.pop_back(); } }}int main() { while(cin>>n>>m) { memset(flag,0,sizeof(flag)); for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin>>Map[i][j]; vector<Point>v; tp.x=0,tp.y=0; v.push_back(tp); flag[0][0]=1;//起始点一定要标标为已访问,否则会重复访问起点 dfs(v,tp); } return 0;}
阅读全文
0 0
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题...
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- 迷宫问题
- Java并发之ForkJoin
- iOS11 新特性-Core ML (三) Core ML 实战
- PowerDesigner入门
- Hdu 2052 picture 正确题解 (mmp 没得哈事干了要多输出一行!害得我改了NNN次!!!)
- mybatis主键回显
- 迷宫问题
- ELF文件详解—初步认识
- Android Viewpager3D广告轮播
- eclipse启动报错
- 关于三方
- 前去实训的路上随写
- first week python
- Spring 集成Axis2 1.7.5 遇到的问题
- 蚂蚁分类信息系统5.8 数据标签调用方法(四)