二分图——匈牙利

简单

F - Plug It In

传送门
题意:已知有 n 个插座,m 个设备,以及插座和设备直接的关系数 k,插座和设备都是从 1 开始编号,你可以把某个插座变成三个插座,问最大匹配数(n, m <= 1500, k <= 75000)
做法:如果没有变插座的条件,那么就是一个简单的匈牙利算法,如果将一个插座变成三个插座,相当于插座数变成 n + 2,多出的两个插座是原插座的复制版,所以就是对 n + 2 和 m 跑匈牙利,枚举所有 n ,每次对插座创造两个复制体,然后跑匈牙利

K - Kingdom of Obsession

传送门
题意: 给定两个数 n 和 s,[s + 1 , s + n] 这个区间内所有数都要在 [1 , n] 里找到一个可以和他匹配的数,这个数必须是他的约数,问是否能一一配对。(n , s <= 1e9)
做法:首先,对于素数而言,只能和 1 配对,所以如果 [s + 1 , s + n] 区间内出现两个素数,说明必然不可能一一配对,所以要知道在 1e9 内两个素数的最大距离,如果区间长度 > 素数距离,那肯定是无法配对。根据打表,发现 1e8 前素数距离是 220。如果在这个距离范围内,可以直接建图跑二分图。注意:当 [s + 1 , s + n] 与区间 [1 , n] 有重合时,那么重合的部分可以直接配对,其余部分当作不重合的跑二分图,那么区间就不再是 n,而是 s

中等

较难

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值