深搜dfs
来源:互联网 发布:阿里云 搭建云流量 编辑:程序博客网 时间:2024/06/05 03:32
深搜是找到每条可以从起点到终点的路径然后比较输出最短的路径,这些路径是一条一条找的;而广搜是同时找可能存在的路径,直到找的终点为止,最先找到终点的路径一定是最短路径,因为广搜每次路径都是同时移动一步,最先找到的就是移动步数最少的路径。 当迷宫大小是100*100格时用深搜是会超时的。
#include<stdio.h>#include<string.h>int a[51][51],book[51][51];int x2,y2,min=99999999,m,n;void dfs(int x,int y,int s){int next[4][2]={{1,0},{0,1},{-1,0},{0,-1}};int k,tx,ty;//printf("%d %d\n",x,y);if(x==x2&&y==y2){if(min>s)min=s;return ;}for(k=0;k<=3;k++){tx=x+next[k][0];ty=y+next[k][1];if(tx<1||tx>m||ty>n||ty<1)continue;if(a[tx][ty]==0&&book[tx][ty]==0){book[tx][ty]=1;dfs(tx,ty,s+1);book[tx][ty]=0;}}return ;}int main(){int x1,y1,i,j,k,l;while(scanf("%d%d%d%d",&x1,&y1,&x2,&y2)){memset(a,0,sizeof(a));scanf("%d%d",&m,&n);for(i=1;i<=m;i++)for(j=1;j<=n;j++)scanf("%d",&a[i][j]);book[x1][y1]=1;dfs(x1,y1,0);printf("%d\n",min);}return 0;}/*1 1 4 35 40 0 1 00 0 0 00 0 1 00 1 0 00 0 0 17*/
阅读全文
0 0
- 深搜dfs
- 深搜DFS
- DFS深搜
- 深搜dfs
- hdu 1716 深搜dfs
- poj3009-dfs深搜
- Oil Deposits(dfs深搜)
- POJ1321(DFS深搜)
- DFS 深搜 HDU 1312
- poj 1426 深搜dfs
- POJ2386经典DFS深搜
- 搜索-深搜dfs
- 全排列 深搜dfs
- HDU5319 Painter(深搜DFS)
- 深搜dfs模型
- DFS(深搜)算法解析
- hdu1258 dfs深搜
- uva 11181 dfs深搜
- More Effective C++之Item M10:在构造函数中防止资源泄漏
- 逻辑学 笔记三 论证
- 数据库——(6)关系和范式
- 保存退出vi编辑以及CentOS 系统安装配置步骤详解
- MultiDex开启后RxJava noClassDefFoundError(App for multidex解决方式)
- 深搜dfs
- number 90分的暴力
- 服务如何获取当前登录的windows用户名
- Protobuf详解
- (一)php基础语法
- UML中类与类之间的关系
- sql语句给数据库减肥,下面以网狐6603源码搭建为案例
- 数据库 连接基础知识 等值连接 自然连接
- EMF学习笔记(二)——使用EMF编程——开发元数据