题意 给出一个\(n\)个点\(m\)条边的有向图\((n,m<=100000)\),从中选择\(k\)个点\((k<=n)\),问这k个点两两之间的最短路最小值是多少? 思路 直接的想法是对于每个点求一遍最短路,这样一共要跑n次最短路,时间复杂度\(O(nmlogm)\). 考虑两个点集\(S1\)和\(S2\)之间的最短路,我们可以跑一次最短路求出来. 具体可以新建虚拟源点\(s\)和虚拟汇点\(t\),\(s\)和\(S1\)的每个点之间连一条零边,\(t\)同理. 那么这一次最短路就相…