哈密顿路存在问题

题目: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),有<v'i,vk+1>∈E(D),i=1,2,…,r-1,而<vk+1,v'r>∈E(D),见图15.8(1)所示,则Г=v'1v'2…v'r-1vk+1v'r…v'k为D中哈密顿通路。否则,i∈{1,2,…,k},均有<v'i,vk+1>∈E(D),见下图所示,则Г=Г'∪<v'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,E>,其中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中一条哈密顿回路,按这条回路的顺序安排座次即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值