翻转游戏题解

这是一篇关于翻转游戏的解题博客,通过BFS(广度优先搜索)和哈希表来寻找最少翻转次数达到目标状态。文章介绍了如何将棋盘状态位压缩并进行BFS搜索,同时提供了C++的AC代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

翻转游戏是这样玩的:

有一张4*4的棋盘,在16个位置上每个位置放着一个棋子,棋子一面是黑色,另一面是白色,棋子或者白色面朝上,或者黑色面朝上。游戏的走法如下:每一步先选择一个位置,然后把该位置和上,下,左,右(不越界)相邻位置上的棋子翻转(白->黑,黑->白)。我们用w表示棋子白色面朝上,b表示黑色面朝上。

例如:考虑如下棋盘状态:

bwbw

wwww

bbwb

bwwb

当我们选择第三行,第一列的位置翻转时,棋盘变化为:

bwbw

b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值