题意:
宇宙中有n个星球,你的任务是用最短的时间把k个超级计算机从星球S运送到星球T。每个超级计算机需要一整艘飞船来运输。行星之间有m条双向隧道,每条隧道需要一整天的时间来通过,且不能有两艘飞船同时使用同一条隧道。隧道不会连接两个相同的行星,且每一对行星之间最多只有一条隧道。
分析
先二分答案T,然后按照下面的方法判断能否再T天内运送所有的k台超级计算机。
把原图中的每个点u拆成T+1个,分别为u0,u1,..,uT ,其中u0是初始状态的结点u,而ui表示i天之后的结点u。对于原图中的相邻节点a和b,在新图中从ai到bi+1连一条边,容量为1,再添一条bi到ai+1的边,容量也为1。对于原图中的每个结点u,添加边ui到ui+1,容量为无穷大,表示飞船总是可以原地不动。在这个图求最大流,判断流量是否大于等于k