有这么一个无自环的有向图,它的顶点数在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的老题翻一下
难道我是沙发???
ps看到那一长串字就没耐心了……还是路过吧
诶?看不见回复诶……
题目理解不了啊,怎么没有辅助图呢?
还有这种好事。。包吃包住包玩~~TAT我也想去。。要是你这次能有了mm解决个人问题,以后大家就可以一起去旅游啦~
读缺氧了#_#
貌似这是读M67日志的通常感觉
长为2或3是否应该改为长为1,2或3?如果AB直接有边相连?
to Setet:从B到B也有唯一的方法两步之内走到