最少步数-深度优先搜索的实例
来源:互联网 发布:人工智能在制造业应用 编辑:程序博客网 时间:2024/06/07 01:09
http://acm.nyist.net/JudgeOnline/problem.php?pid=58#include<stdio.h>int sum1,sum;int map[9][9]={ 1,1,1,1,1,1,1,1,1, 1,0,0,1,0,0,1,0,1, 1,0,0,1,1,0,0,0,1, 1,0,1,0,1,1,0,1,1, 1,0,0,0,0,1,0,0,1, 1,1,0,1,0,1,0,0,1, 1,1,0,1,0,1,0,0,1, 1,1,0,1,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,};void search(int a,int b,int c,int d,int sum)//坐标和当前步数{if(a==c&&b==d){if(sum<sum1)sum1=sum;return ;//强制性结束}map[a][b]=1;sum++;if(map[a+1][b]==0)search(a+1,b,c,d,sum);//上if(map[a-1][b]==0)search(a-1,b,c,d,sum);//下if(map[a][b-1]==0)search(a,b-1,c,d,sum);//左if(map[a][b+1]==0)search(a,b+1,c,d,sum);//右map[a][b]=0;}int main(){int i,j;int n,a,b,c,d;scanf("%d",&n);while(n--){sum1=100000;sum=0;scanf("%d%d%d%d",&a,&b,&c,&d);search(a,b,c,d,sum);printf("%d\n",sum1);}return 0;}
原题 南阳理工acm 地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=58 最少步数以下是代码:注:这个代码也是在网上看别人的思路自己写出来的...也算不上是原创...
以下是感想:
实际上第一次做这个题,感觉有点蒙,虽然说我做大多数的题第一次做都是这样。
我的问题是出现在递归的上面,在递归上面有点迷糊,主要是不知道怎么才能是最少的步数,想了几天还是算了,然后就看了网上的做法
额。。。。真简单...
具体是这样的:递归相当于把所有的结果都遍历了一遍,就是所有的路线,然后再比较路程的大小,最后直接输出。
最重要的是递归的那一个大循环基本上看懂了就能完全理解这个题了。最后再附上我所了解到了这个题之前我所不知道的C语言知识:1.INT_MAX (好像是c++中的,因为我去掉头文件就不能用了)表示最大的整数 其实就是宏定义,int 型同理还有INT_MIN表示整型里的最小的数
还有就是个sscanf(s,"%d",&n);//从字符串s中读入整数n sprintf(s,"%d",n);//将n转换为字符串s 具体的可以到网上搜索一下用法 我感觉特别神奇,具体以后再说吧。
阅读全文
0 0
- 最少步数-深度优先搜索的实例
- 广度优先搜索:迷宫最少步数
- 推箱子寻求最少步数(广度优先搜索)
- 搜索--NYOJ58最少步数
- XYNUOJ 最少步数 搜索
- 深度优先搜索实例
- nyoj-58 最少步数 搜索
- NYOJ58 最少步数(搜索)
- nyoj 58 最少步数 【BFS+优先队列】
- nyoj 58最少步数 BFS+优先队列
- 深度优先搜索求数的全排列
- 回溯--深度优先搜索(数字n的组合数)
- 【深度搜索】NYOJ58最小步数
- 问题 B: 最少的步数 【BFS】
- 问题 N: 最少的步数
- nyist oj 58 最少步数(dfs搜索)
- NYOJ--58(搜索)-题目-----------------------------最少步数
- NYOJ题目58-最少步数(搜索)
- 算法题/矩形覆盖
- bzoj 3632: 外太空旅行 随机化
- APUE 第10章 信号
- HTTPS
- 第三周项目1(3)对线性表的修改
- 最少步数-深度优先搜索的实例
- python 文件操作
- ZigZag Conversion
- 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
- APUE 第11-12章 线程和线程控制
- Spring boot使用pagehelper 报空指针异常
- hdu 1701 ACMer
- ViewPager切换图片
- 数组查找