📂题解
🔖题解
2023-11-18 19:06阅读: 8评论: 0推荐: 0

P2678 跳石头 题解

P2678 跳石头

链接

这道题其实很水

我们二分最长距离,最后用 check 函数 判断合不合法

一下是核心代码

check 函数这样写:

bool check(int x){
int last=0,tot=0;
for(int i=1;i<=n;i++){
if(a[i]-last<x) tot++;
else last=a[i];
}
if(len-last<x) tot++;
return tot<=m;
}

二分这样写:

int l=1,r=len+1;
while(l+1<r){
int mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid;
}
cout<<l;

AC代码

本文作者:merlinkkk

本文链接:https://www.cnblogs.com/merlinkkk/p/17832510.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   merlinkkk  阅读(8)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开