哈密顿路存在问题

题目:zoj3332,10年浙江省赛的一道题

大意:给100个点,任意两点有且仅有一条有向边,请输出任意一条哈密顿通路,如果没有,输出impossible

(ps:传说中暴搜也可以过的题)

 

题目中的图叫做竞赛图

定理1:n(n>=2)阶竞赛图一定存在哈密顿通路

证明转载自http://web.nuist.edu.cn/courses/lssx/longtime/part4/chapter15/15_02_03_02.htm

对n作归纳法。n=2时,D的基图为K2,结论成立。设n=k时结论成立。现在设n=k+1.设V(D)={v1,v2,…,vk,vk+1}。令D1=D-vk+1,易知D1为k阶竞赛图,由归纳假设可知,D1存在哈密顿通路,设Г1=v'1v'2…v'k为其中一条。下面证明vk+1可扩到Г1中去。若存在v'r(1≤r≤k),有i,vk+1>∈E(D),i=1,2,…,r-1,而k+1,v'r>∈E(D),见图15.8(1)所示,则Г=v'1v'2…v'r-1vk+1v'r…v'k为D中哈密顿通路。否则,i∈{1,2,…,k},均有i,vk+1>∈E(D),见下图所示,则Г=Г'∪k,vk+1>为D中哈密顿通路。

 

 

 

 

 

证明了这个定理后问题就简单了。可以依次从1~N遍历所有的点。当v=1时成立。之后根据上述定理,每次循环开始时都维持着一条哈密顿路,直到循环结束。具体实现可以用链表来模拟。

 

 

另:

无向图中存在哈密顿路的充要条件:

定理2 设G是n阶无向简单图,若对于G中任意不相邻的顶点vi,vj,均有

    d(vi)+d(vj)≥n-1 (15.1)      则G中存在哈密顿通路。

 

推论 设G为n(n≥3)阶无向简单图,若对于G中任意两个不相邻的顶点vi,vj,均有

    d(vi)+d(vj)≥n (15.2)则G中存在哈密顿回路,从而G为哈密顿图。

 

例题:例15.5 在某此国际会议的预备会议中,共有8人参加,他们来自不同的国家。已知他们中任何两个无共同语言的人中的每一个,与其余有共同语言的人数之和大于或等于8,问能否将这8个人排在圆桌旁,使其任何人都能与两边的人交谈。

 

解: 设8个人分别为v1,v2,…,v8,作无向简单图G=,其中V={v1,v2,…,v8},vi,vj∈V,且i≠j,若vi与vj由共同语言,就在vi,vj之间连无向边(vi,vj),由此组成边集合E,则G为8阶无向简单图, vi∈V,d(vi)为与vi有共同语言的人数。由已知条件可知,vi,vj∈V且i≠j,均有d(vi)+d(vj)≥8.由推论可知,G中存在哈密顿回路,设C=为G中一条哈密顿回路,按这条回路的顺序安排座次即可。

你可能感兴趣的:(哈密顿路存在问题)