高手们请给出此题的代码,up有分,近来看看也好!

wallis 2002-10-25 04:53:04
MAGIC


--------------------------------------------------------------------------------



在魔方风靡全球之后,Rubik先生发明了它的简化版--魔板,如图1所示,
魔板由8个同样大小的方块组成,每个方块的颜色均不相同,本题中以数字1-8
分别表示,可能出现在魔板的任一位置,任一时刻魔板的状态可以用方块的颜色序
列表示:从魔板的左上角开始,按顺时针方向依次写下各方块的颜色代号,得到的
数字序列即可表示此时魔板的状态。例如,序列(1,2,3,4,5,6,7,8)表示图1所示
魔板的状态,这也就是题中魔板的初始状态。
对于魔板,可以施加三种不同的操作,分别以A,B,C标识。具体操作方
法如下:
A:上下行互换;
B:第一行同时循环右移一格;
C:中间4个方块顺时针旋转一格;
应用这三种基本操作,可以由任一状态达到任意另一状态。

图一 操作A 操作B 操作C
1 2 3 4 8 7 6 5 4 1 2 3 1 7 2 4
8 7 6 5 1 2 3 4 5 8 7 6 8 6 3 5

要求:
1。请编一程序,对于输入的一个目标状态,寻找一种操作的序列,使得从初始状
态开始,经过此操作序无后使该魔板变为目标状态。
2。20次操作内无此状态,报告出错信息
3。能实现单步运行,每一步产生一幅魔板图,一验证找到的序列。
简析:
算法: 双向搜索
数据结构: 数组
题型: II 型
难度: 6 分
编程时间: 90分钟
简述: 用动态内存可存下所有的8! 种状态,双向搜索可加快运行速度,也
可用构
造的方法。

    

...全文
38 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenming_liu 2002-10-26
  • 打赏
  • 举报
回复
题目已经说得很清楚了...
liufucsdn 2002-10-26
  • 打赏
  • 举报
回复
请懂得人不厌其烦,教教我们这些不懂的人,谢谢!!!!!!
zjhangtian 2002-10-26
  • 打赏
  • 举报
回复
太长了!不想贴了!我有三段不同的源代码!
这是NOI-96 的第六题,参见《信息学奥林匹克竞赛题解精编》419页,这上面讲得太详细了! 南京大学出版社出版
taro75 2002-10-26
  • 打赏
  • 举报
回复
可以通过数的深度搜索,来实现。利用栈来保存每个节点的状态!·
袁尤军 2002-10-26
  • 打赏
  • 举报
回复
up
SailorK 2002-10-25
  • 打赏
  • 举报
回复
关注中
zhenxizhou 2002-10-25
  • 打赏
  • 举报
回复
我觉得可设一个4*2的二维数组,然后再对这个数组实行以上的操作就可以了,至于程序,不写了罢。
caoyfish 2002-10-25
  • 打赏
  • 举报
回复
up

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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