趣题:奇怪的有向图 任两点间两步之内可达的路径有且仅有一条
icon2 Brain Storm | icon4 2008-09-18 10:54| icon35 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com

    有这么一个无自环的有向图,它的顶点数在30和40之间(包括30和40)。对于图里面的任意两个点A和B,要么存在一条有向边A->B,要么存在唯一的一个“中间点”C使得A可以通过A->C->B两步走到B。换句话说,对任意给定的A、B两点,从A到B的长度不超过2的路径有且仅有一条。注意,即使当A=B时,这个条件也是成立的。试问这个图有多少个顶点。

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    这道题有趣就有趣在,我们的突破口居然是考察A、B两点间长度为2或3的路径数。假设A有p个后继节点(即从A出发的边有p条),B有q个前驱节点(即有q条边指向B),那么从A到B的路径中长度为2或3的一共有多少条?你可能会说:当然有p条咯!因为A有p个后继节点,而每个后继节点两步之内走到B恰有一种方法。但为什么不说答案是q呢?有q个点可以直达B,而点A在两步之内到这q个点的路径都是唯一的,这就说明从A到B长为2或3的路径数目为q。这告诉我们,p和q是相等的,即A的出度和B的入度相等。再找一个点C,则我们立即可知C的出度也等于B的入度,于是A和C的出度相等。你会立刻发现:搞了半天,这个图的所有点的出度和所有点的入度全部相等。假设这个数字为k,即每个点的前驱和后继都有k个。从某个点A出发,走一步可以到达k个点,再走一步就可以到达k*k个点,这k+k*k个点恰好就是所有点的个数,既无重复也无遗漏。由于30 <= k+k*k <= 40,我们得到k=5,这个图的顶点数为30。
    且慢!我们还没说明满足条件的图真的存在呢!事实上,考虑这样30个点{V_ij|1<=i<=6, 1<=j<=6, i≠j},从V_ij到V_kl有边当且仅当j=k。这个图显然满足我们的题目条件。

来源:http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/challenges/October1999.html
最近打算把IBM Ponder This的老题翻一下

5 条回复

  • 楼层: 沙发 | | 路过的 说:

    难道我是沙发???
    ps看到那一长串字就没耐心了……还是路过吧

  • 楼层: 板凳 | | 路过的 说:

    诶?看不见回复诶……

  • 楼层: 地毯 | | 凌晨海风 说:

    题目理解不了啊,怎么没有辅助图呢?

  • 楼层: 地板 | | 燕仰 说:

    还有这种好事。。包吃包住包玩~~TAT我也想去。。要是你这次能有了mm解决个人问题,以后大家就可以一起去旅游啦~

  • 楼层: 地下室 | | 夜夜夜里听雪 说:

    读缺氧了#_#
    貌似这是读M67日志的通常感觉

您也随便说几句吧:

请注意:如果您是第一次在本站发表评论,您的评论需要通过管理员的审核。

您可以在Gravatar设置您的头像。