社区
数据结构与算法
帖子详情
移动棋子问题(觉得用回溯法)
alen1985
2009-04-06 09:51:52
1.设有2n+2个排成一行的格子,最左边的两个格子是空的,其后的格子一次放入A子和B子:
|空格|空格|A|B|A|B|...................|A|B|
现规定移动规则如下:
每次可将任意两个相邻的棋子移入空格,移动时两子的左右持续不得变动。试按此规则以最少的步骤将
n个A子移到一起,n个B子移到一起,空格的位置可任意。
求各位大侠思路,有源代码最好!
...全文
339
14
打赏
收藏
移动棋子问题(觉得用回溯法)
1.设有2n+2个排成一行的格子,最左边的两个格子是空的,其后的格子一次放入A子和B子: |空格|空格|A|B|A|B|...................|A|B| 现规定移动规则如下: 每次可将任意两个相邻的棋子移入空格,移动时两子的左右持续不得变动。试按此规则以最少的步骤将 n个A子移到一起,n个B子移到一起,空格的位置可任意。 求各位大侠思路,有源代码最好!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lgq2369
2009-04-13
打赏
举报
回复
N = 4,为5步:
0:OOABABABAB
1:BAAOOBABAB
2:BAAABBOOAB
3:OOAABBBAAB
4:AAAABBBOOB
5:AAAAOOBBBB
N = 5,为6步:
5:AAAAOOBBBBAB
6:AAAAABBBBBOO
N = 6,为8步:
6:AAAAABBBBBOOAB
7:AAAAAOOBBBBBAB
8:AAAAAABBBBBBOO
N = 7,为10步:
8:AAAAAABBBBBBOOAB
9:AAAAAAOOBBBBBBAB
10:AAAAAAABBBBBBBOO
以后没增加1,就需增加2个步骤
故
N<4时,无解;
N=4时,为5;
N>4时,为2N-4;
绿色夹克衫
2009-04-13
打赏
举报
回复
哦,11楼给出了递推的方法,很不错了!LZ的问题应该解决了。
alen1985
2009-04-13
打赏
举报
回复
各位辛苦了,散分!
xiaocha
2009-04-13
打赏
举报
回复
11楼步骤都写出来了,写成代码很容易,结贴了,给我点分
绿色夹克衫
2009-04-12
打赏
举报
回复
2个不行的话,4个可以么?LZ先个一个4个最一般的解法吧!我们帮你总结一下!
[Quote=引用 9 楼 alen1985 的回复:]
题目是对的,前提是N>=4
[/Quote]
alen1985
2009-04-12
打赏
举报
回复
题目是对的,前提是N>=4
xiaocha
2009-04-12
打赏
举报
回复
题目不对,但有答案,大家有的猜了
帮顶,接分
alen1985
2009-04-12
打赏
举报
回复
步骤是:2n-3(其中n>=4),帮顶散分了!
test4ever
2009-04-07
打赏
举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
这题似乎无解呀?不知道LZ是不是有啥没说清楚的地方?
00ABAB -> BAA00B 然后呢? -> B0AA0B -> 00AABB 最后一步允许么?
[/Quote]
lz的意思可能是这样的
将设2个0代表一个空格,最左端是
0000ABAB.. ->
00BAA00B... ->
AAB0000BAB.. ->
AAAB000BB0AB.. ->
AAABBB0000AB..
LZ是不是这个意思?
大王派我去巡山
2009-04-07
打赏
举报
回复
应该是别版转来的帖子吧~
我也没看懂lz说的规则,如果左右无法互换,那么永远也不可能实现“n个A子移到一起,n个B子移到一起”。
也许是楼主没说清楚吧。象这种问题,一般都是靠搜索来解决问题。
楼主说的回溯是深搜。一般来说,象这种求最优的问题,用宽搜(分支限界)更合适一些~
alen1985
2009-04-07
打赏
举报
回复
好像00ABAB的时候不行,怀疑题目出问题了!大家帮忙看下
M_S_D_N
2009-04-07
打赏
举报
回复
这里不是算法区么?
[Quote=引用 1 楼 hairetz 的回复:]
建议发去算法区问dlyme
[/Quote]
绿色夹克衫
2009-04-07
打赏
举报
回复
这题似乎无解呀?不知道LZ是不是有啥没说清楚的地方?
00ABAB -> BAA00B 然后呢? -> B0AA0B -> 00AABB 最后一步允许么?
猫已经找不回了
2009-04-06
打赏
举报
回复
建议发去算法区问dlyme
骑士巡游
问题
(马步
问题
),用
回溯法
实现的
【
问题
描述】 骑士巡游
问题
:从国际象棋棋盘上任意给定的方格开始
移动
骑士,相继地到达所有的64个方格,进入每个方格一次且仅进入一次。
一个关于用
回溯法
解决骑士
问题
的ppt
用词语言编写的
回溯法
运用程序,是关于骑士
问题
的,类似于八皇后
问题
。适用于初学者
使用
回溯法
与c语言解决象棋中马的遍历
问题
问题
:有一只中国象棋中的马,在半张棋盘的左下角出发,向右上角跳去。若规定只许向右跳(可上,可下,但不允向左跳)。求所有的跳动方案。 使用
回溯法
与c语言解决象棋中马的遍历
问题
。
回溯法
解决N皇后
问题
(以四皇后为例)
以4皇后为例,其他的N皇后
问题
以此类推。所谓4皇后
问题
就是求解如何在4×4的棋盘上无冲突的摆放4个皇后
棋子
。在国际象棋中,皇后的
移动
方式为横竖交叉的,因此在任意一个皇后所在位置的水平、竖直、以及45度斜线上都不能出现皇后的
棋子
算法课程设计—独立钻石跳棋
问题
算法课程设计—独立钻石跳棋
问题
(java回溯发)
数据结构与算法
33,027
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章