puzzle(0812)踏马、立方骑士

目录

一,踏马

1,游戏规则

2,简单分析

(1)问题本质

(2)起点

3,策略思路

(1)圈分割

(2)部分解

二,立方骑士

跨面的条件

立方面连通性

分治算法


一,踏马

Taptap中的游戏。

1,游戏规则

游戏规则是,根据马走的日字,走出一个圈。

  

对于有数字2的,要走2次,其实就是2个圈的交点。

  

结果图不太能显示完整路径,所以我手动补充了一下。

2,简单分析

(1)问题本质

问题可以分解成两个问题,第一,寻找一个圈,第二,一笔画完圈。

(1)在一个无向图中寻找一个圈,使得每个点经过的次数都和给定数字相同。

给定数字绝大多数是1,少部分是2

(2)一笔画完圈,圈可能自交,即由若干个圈组合而成。

(2)起点

因为是圈,所以任意一点都可以是起点。

不过对于有数字2的,用数字2的点作为起点更容易找到答案。

3,策略思路

(1)圈分割

  

(2)部分解

(1)度最小的点

度最小的点,只有2个邻居,如B的邻居是AC,则ABC必定是圈的一部分。

(2)路径拼接

对于简单圈,两条路径只要有公共端点,即可拼起来成为一条路径。对于自交圈,如果公共端点不是1,则不一定。

有2及以上的才是自交圈,只有1的是简单圈。

总之,如果两条路径有公共端点,且这个端点不为1,则可拼起来成为一条路径。

   

 这样,再去找剩下的部分,就比较容易了。

其实问题本身并没有得到很大的化简,主要是看起来更清楚而已。

二,立方骑士

Taptap中的游戏,最强大脑同款项目,推理过程和平面骑士跳并没有任何区别。

(1.5)

  

棱上的格子有两个甚至三个面的,算作一个格子。

跨面的条件

必须通过棱上的格子,才能从大立方体的一面走到另外一面。

(1.9)

   

 (2.3)

  

这一关涉及5个面,要2个截图才能截下来。

立方面连通性

立方体的6个面中,若干个有白格的面之间,不是所有面都是连通的,即使是2个相邻的面,也可能可以推断出这2个面的白格之间是不互通的。

PS:有起点或者终点的面,一定有白格。

分治算法

因为跨面一定要走棱上的格子,所以很容易把分而治之。

以(2.3)为例,首先把4个侧面都剥离出来,汇总到主面上:

然后继续推理:

  

 于是完整的答案就已经出来了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值