大一学生在学数据结构与算法,不得要领,求解《冰原探险》问题

majiemarilyn 2009-03-27 06:20:15
希望大牛前辈能告知《冰原探险》的算法
跪求~~
因为是我们的作业而且很着急~
所以希望能有人帮帮忙~
谢谢~
...全文
169 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Damn_boy 2009-04-03
  • 打赏
  • 举报
回复
那是我们大2的课程.学的真早
tct657 2009-04-01
  • 打赏
  • 举报
回复
有点强……
eXEL 2009-04-01
  • 打赏
  • 举报
回复
哎我们也是大一就学啊...
大一第一学期直接上C++,下学期数据结构就来了
我们是软工
forfree_ 2009-04-01
  • 打赏
  • 举报
回复
怎么你们大一就学了?!
bbb332 2009-03-30
  • 打赏
  • 举报
回复
多问老师就是了....
tsoslience 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xformat 的回复:]
大一就学数据结构了?真强啊

搜索了一下,网上有解答。
[/Quote]
采用队结构,依次扩展出每一个结点的所能到达的所有结点。为了在让结束条件更简单,我们可以把终点看作是一块边长为一的小冰山。这样在在冰块撞到这块小冰山时,程序就找到了正确解。如果无法继续扩展队中的点,即队的头指针等于尾指针,就输出无解。在计算冰块能到达的位置时,可以朝一个方向搜索,直到找到一块能挡住冰块前进的冰山为止。

  例如再输入样例中队的扩展情况如下:
              
  1, 1-》2,1-》2,5-》4,5
  再扩展到4,5时,冰块撞到了代表终点的小冰山,所以样例的最优值就是3。

算法优化:

  由于数据在地图的大小上没有限制,不能以一个二维数组来表示地形,所以在计算冰块可到达位置时只能对所有冰山进行搜索。
  为了提高在计算冰块可到达的位置时速度,可以在开始时按每一个方块的四个坐标先进行了四次排序,这样在计算时只要依次查找每一块冰山,再找到一块能挡住冰块前进冰山后,冰块就停在此冰山的前面。
  还可以记录下每个结点的父亲,避免冰块来回在一个地方移动。在扩展的每一个结点与前面所有结点进行比较,避免重复。
  在空间上,可以把一个冰山记录在一个指针里。这样在四次排序中,只要对指针的地址进行排序。

????
叶重楼 2009-03-29
  • 打赏
  • 举报
回复
大一就学数据结构了?真强啊

搜索了一下,网上有解答。
william228 2009-03-29
  • 打赏
  • 举报
回复
up

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧