不错的一道题目,最大流和二分多重匹配都可以做
但是网络流我用EK或者Relabel-To-Front 都TLE了,网上说SAP不会超时,今天把二分多重匹配和SAP都学习了下
用二分匹配时,枚举区间很巧妙,设low为枚举等级区间的左极限,high为枚举等级区间的右极限
当这个区间可以满足要求时,说明可以缩小区间范围,low++
若不能,说明需要增加区间范围,high++
因为[low,high]满足时,[low,high+1]必然满足,[low+1,high]满足时,[low,high]也必然满足
这样,枚举次数就是O(b)了
另外,当数组大点,且数组初始化次数较多时,时间代价也是很大的,写二分匹配时,link数组开成1200×1200的,时间多花了300多MS
代码:
SAP版:
二分匹配版: