二分总结(超详细版)四大模块,10分钟带你学会二分(三)

上期是查找上下界,这期是二分答案上下界

一.二分答案

解题思路:确定枚举思路,通过二分答案对枚举思路进行优化

1.确定枚举对象,一般求什么就枚举什么;

2.确定枚举范围:枚举边界,可能的最小值和最大值;

3.确定 check 函数写法!通常根据限定内容来写 check;check 需要先手动模拟,然后用代码实现模拟过程;

4.判断答案是否满足单调性,能否通过判断,去掉其中一半的可能性,对枚举答案进行二分。

二.二分答案 下界 常见check 补充

物资分配:(例题)

①题型描述:有 n 个城市,每个城市 a[i]个人,b 个投票箱(一个投票箱只能供一个城市使用),在满足装下所有人投票的情况下求:投票箱容量的最小值。

②题型分析:二分答案 -下界

③check 实现:判断投票箱容量为 x 是否可行,在容量为 x 的前提下计算满足装下所有投票需要的投票箱数量,判断所需投票箱数量是否<=b!

④check 实现:

⑤典型例题:投票箱                                                                     下期讲解

 三.二分答案 上界

1.处理题型:求最小值最大问题;使得答案尽可能大;二分上界

2.代码实现:

 注:二分答案使用前提:答案具有单调性!

四.二分答案 上界 常见 check

1.剔除元素

①题型描述:在 n 个石头中,选择去除 m 个,使得剩余石头的最短距离 最大。

②题型分析:二分答案 -上界

③check 实现:判断最短距离为 x 是否可行,在最短距离为 x 的前提下(所有距离不能小于 x),移除石头,判断移除数量是否<=m!

④check 实现:

 ⑤典型例题:河中跳房子 //n+2个石头                                        下期讲解
2.挑选元素

①题型描述:在 n 个隔间中,取出 m 个,使得取出的隔间之间最短距离 最大。②题型分析:二分答案 -上界③check 实现:判断最短距离为 x 是否可行,在最短距离为 x 的前提下(所有距离不能小于 x),挑选隔间,判断最终挑选隔间数量是否>=m!④check 实现:

⑤典型例题:K11779 Aggressive cows 好斗的奶牛                                 下期讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值