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,由于整个图是连通的,所以在该回路上,一定存在一点与回路之外的点相邻,那么从该点处把回路断开,就变回了一条路径,同时还可以将与之相邻的点加入路径,