Fw: [问题] 西洋棋骑士问题(最短路径)

楼主: bleed1979 (十三)   2013-06-16 17:02:57
※ [本文转录自 C_and_CPP 看板 #1HkGZd0J ]
作者: ianweng509 (嗡嗡) 看板: C_and_CPP
标题: [问题] 西洋棋骑士问题(最短路径)
时间: Thu Jun 13 07:48:53 2013
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev C++
问题(Question):
输入所在以及目标座标后,求最短路径的的步数
我用递回写,但程式一旦找到一条路径以后就会跳开
不会去试其他较快的步数
想不到该怎么修改程式会比较好
喂入的资料(Input):
C5 F5
表示所在位置在@号位置
目标位置在#号位置
作者: ianweng509 (嗡嗡)   2013-06-13 07:51:00
忘了说 上面的change函数是将输入的char转换成座标!
作者: kiedveian (极地之星光)   2013-06-13 07:54:00
函式加个参数(目前最小值),新找到的小于它才return效能可能不怎么好就是了…
作者: ianweng509 (嗡嗡)   2013-06-13 07:57:00
可是一定要有个初始值 这样第一次不是不管怎样都会小于吗@@?因为我是让他在flag阵列里面的值++ 最后只要从0~7印出第一个非0的数
作者: kiedveian (极地之星光)   2013-06-13 07:59:00
无视我上面写的,在for前面加个变量比较快
作者: tobygameac (toby)   2013-06-13 08:15:00
BFS
作者: ianweng509 (嗡嗡)   2013-06-13 08:19:00
楼上您说的我有google到 但我不是资工系的我真的看不懂这个算法在干嘛 以及如何运用在我的问题上ˊˋ
作者: tobygameac (toby)   2013-06-13 08:33:00
把每个点都想成一个状态每到一个状态就把所有能走还没走的状态在加入queue里面可以想成是暴力穷举,但过滤掉已走过的http://codepad.org/uCfFy790
作者: a88258850   2013-06-13 11:21:00
BFS的概念接近水波扩散的感觉
作者: tjjh89017 (伊达政宗)   2013-06-13 13:29:00
这题应该就是用BFS 原PO一开始应该是用DFS吧
作者: ianweng509 (嗡嗡)   2013-06-13 19:47:00
感谢各位!另外请教DFS 是什么意思?
作者: janice001 (真理)   2013-06-13 20:35:00
DFS 深度优先搜寻 BFS 广度优先搜寻 google it
作者: DarkPrincex (DP)   2013-06-13 23:54:00
第64行~第66行那里,你找到一组解就直接return了所以才会有找到一组几就跳开的样子
作者: amozartea (自行车单)   2013-06-15 02:47:00
越走应越近 变远的去掉

Links booklink

Contact Us: admin [ a t ] ucptt.com