python生成一笔画_python求解微信小游戏——一笔画完

1、概念引入:

哈密顿图:通过图G的每个结点一次,且仅一次的通路(回路),就是哈密顿通路。存在哈密顿通路的图叫作哈密顿图。

一笔画游戏的原理,就是给定我们若干哈密顿图,找到每个图的哈密顿通路。因此我们不需要判断这个图是否是哈密顿图(因为它一定是,否则无法进入下一关),而是要求出每个图的解。这里我们采用最简单的穷尽法(深度遍历)。

2、构造步骤:

(1)任意找两个相邻的节点S和T,在其基础上扩展出一条尽量长的没有重复结点的路径。即如果S与结点V相邻,而且V不在路径S->T上,则可以把该路径变成V->S->T,然后V成为新的S,从S和T分别向两头扩展,直到无法继续扩展为止。即所有与S或T相邻的节点都在路径S->T上;

(2)若S与T相邻,则路径S->T形成了一个回路;

(3)若S与T不相邻,可以构造出来一个回路:设路径S->T上有k+2个节点,依次为S、V1、V2……Vk、T,可以证明存在节点Vi,满足Vi与T相邻,且Vi+1与S相邻,找到这个节点Vi,把原路径变成S->Vi->T->Vi+1->S,即形成了一个回路;

(4)到此为止,已经构造出来了一个没有重复节点的的回路,如果其长度为N,则哈密顿回路就找到了。如果回路的长度小于N,由于整个图是连通的,所以在该回路上,一定存在一点与回路之外的点相邻,那么从该点处把回路断开,就变回了一条路径,同时还可以将与之相邻的点加入路径,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值