这题应该还是属于比较裸的网络流吧
因为有喜欢和不喜欢之分,而不喜欢只能限制取k个,而喜欢的显然是无数个(有妹子泡你不要?)
然后我们把每个点拆点
分为喜欢和不喜欢,先看看喜欢的点吧
直接源点S向每一个男生拆出的喜欢的点连一条inf的边,男生拆出的喜欢的点想他喜欢的女生的喜欢的点连1的边
女生拆出的喜欢的点向汇点T连inf的边
然后接下来处理不喜欢的
因为不喜欢的顶多k个
所以我们限制他的容量
直接源点S向每一个男生拆出的不喜欢的点连一条k的边,男生拆出的不喜欢的点向不喜欢的女生的不喜欢的点连1的边
女生拆出的不喜欢的点向汇点T连k的边
然后二分枚举一下k跑一边最大流判断一下就可以了
代码还用吗?
帅气的博主都讲得这么详细了