设s,t之间的最短路径w长度为k+1,上面的点依次是s,v1,v2,…vk,t, 如果对这些顶点中的每个顶点, s,t之间都有一条路径不经过,
设这个顶点是vi,那不经过vi的路径上一定有一个顶点到s的距离等于i,且这个点不在w上,
若它在w上,如果它在vi之前,标号是vj,那到s的距离<=j<i,如果它在vi之后,标号是vh, 那它到t的距离<=k+1-h, 到s的距离又等于i, 那就出现了一条s,t之间的长为k+1-h+i < k+1的路径,矛盾
所以存在到s的距离是1,2…k的顶点都不在w上,彼此又都不相同,
但由于最短路径长大于|V|/2, 最多只可能有(k-1)个不在路径上的顶点,矛盾了,
所以会有一个顶点,s,t之间所有的路径都要经过
设这个顶点是vi,那不经过vi的路径上一定有一个顶点到s的距离等于i,且这个点不在w上,
若它在w上,如果它在vi之前,标号是vj,那到s的距离<=j<i,如果它在vi之后,标号是vh, 那它到t的距离<=k+1-h, 到s的距离又等于i, 那就出现了一条s,t之间的长为k+1-h+i < k+1的路径,矛盾
所以存在到s的距离是1,2…k的顶点都不在w上,彼此又都不相同,
但由于最短路径长大于|V|/2, 最多只可能有(k-1)个不在路径上的顶点,矛盾了,
所以会有一个顶点,s,t之间所有的路径都要经过
