Description
题目链接:Luogu 2756
英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的 $2$ 名飞行员,其中 $1$ 名是英国飞行员,另 $1$ 名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。皇家空军共有 $n$ 名飞行员,其中 $m$ 名为外籍飞行员。对于给定的外籍飞行员与英国飞行员的配合情况,试设计一个算法找出最佳飞行员配对方案,使皇家空军一次能派出最多的飞机。
数据范围:$1\le m\le m<100$
Solution
由于每个飞行员只能被选择一次,所以我们可以直接想到二分图最大匹配,显然可以用匈牙利算法或网络流解决。
对于输出方案,匈牙利算法可以直接利用匹配数组,而网络流可以判断正向边是否有流量(即反向边的残量是否不为 $0$)。
时间复杂度:$O(n^2\sqrt n)$(二分图 $\text{Dinic}$)
Code
1 |
|