CF702C Cellular Network

知识点:二分

难度:4

一开始看的时候觉得这个题就是二分,但是二分答案的判定函数不是那么好写,于是想了又想,正好今天看了尺取法,于是想出来一个贪心和尺取法结合的方法,我们由城市得到区间,其实就是往区间里面放点,点可以给区间公用,保证最后所有的区间都有点,我给区间排序的方法就是用的区间贪心,但是这里的点不太一样,点都是给定的,区间贪心模型里面的点是任意选的,于是我想到了尺取,左下标是区间,右下标是点,下面的按照尺取法的解题步骤,

对于刚进入循环的时候,我们要写两个while循环的函数,来找右下标的位置,找到在区间范围里面的最后的一个点,因为点可能一开始不在区间里面,所以要写两个while循环,把在外面的情况考虑进去,

然后是我们判断看是不是要退出,如果右下标到了最后了也没在区间里面那么返回错,

然后这时是满足情况的,所以我们要找到最后一个满足的区间,也就是我们要遍历左端点,如果左端点到n了,那么就可以返回true了,

写了这么有水平的代码,然后提交上去,发现过了,十分惊喜,因为自己的判定函数是结合了贪心和尺取算法的,但是我去看了看题解,傻眼了,这是一道根本不用这么复杂的题,对于每个城市,负责它的肯定就是离他最近的电视塔,所以我们遍历城市,找出离他最近的电视塔,这里分类讨论一下就好,每个城市求出最近距离之后更新最大值,这个最大值就是答案,

哎,本

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值