机器人扫地 二分答案

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int i,n,a[100009],k,ans=0;
bool check(int mid){
  int pos=0,t;//pos前面清扫过的位置
  for(i=0;i<k;i++)
  {  //已经清扫的位置还没到当前机器人的位置a[i]
  //一个位置机器人是要去回,一个格子消耗两个时间 
         t=mid;//贪心,每个机器人都花费这些时间 
    if(pos<a[i]) t=t-(a[i]-pos-1)*2;//当前机器人前面清扫掉
    if(t<0) return false;//不能返回到出发格 
    int qs=t/2;//剩下的t能清扫的 
    pos=a[i]+qs; 
  }
  if(pos<n) return false;
  return true;  }
int main(){
   cin>>n>>k;
   for(i=0;i<k;i++)
   cin>>a[i];
   sort(a,a+k);//mid就是机器人清扫花费的时间 ,贪心算,这个机器人扫这些的同时
//其他机器能否花小于等于他的时间,然后所有的地也被清洁完 ,check的时候按所有机器都清扫mid算 
   //check时 是从头算,是否清洁完在这个走廊 
   int left=0,right=n*2,mid;
   while(left<=right){
    mid=(right+left)/2;
    if(check(mid)){
      ans=mid;
    right=mid-1;//当前mid可以,然后要去寻找更加符合的,就是更小的 
     }
     else
     left=mid+1;
   }
   cout<<ans;
return 0;
 }
相关推荐
pursue.dreams29 分钟前
Java实现企业微信机器人消息推送:文本消息与文件推送完整指南
java·机器人·企业微信
LCG米1 小时前
机器视觉与运动控制:基于PC+EtherCAT总线的柔性产线上下料机器人集成案例教程
机器人
CES_Asia1 小时前
八大核心展区全景布局!CES Asia 2026北京展勾勒未来科技生态图谱
大数据·人工智能·科技·机器人
田里的水稻1 小时前
DT_digitalTwin_blender中机器人骨骼建模
机器人·blender
梁辰兴1 小时前
紫光国微成立中央研究院,端侧AI芯片如何重构机器人产业版图?
人工智能·ai·重构·机器人·芯片·ai芯片
OpenLoong 开源社区1 小时前
源启高校,智创未来!OpenLoong 开源社区亮相 AtomGit 西南大学站
人工智能·机器人·开源
NQKSF2 小时前
高性能密封件如何提升机器人产业的可靠性与安全性?
机器人
音视频牛哥2 小时前
C#实战:如何开发设计毫秒级延迟、工业级稳定的Windows平台RTSP/RTMP播放器
人工智能·机器学习·机器人·c#·音视频·rtsp播放器·rtmp播放器
测试人社区-小明12 小时前
智能弹性伸缩算法在测试环境中的实践与验证
人工智能·测试工具·算法·机器学习·金融·机器人·量子计算
元让_vincent21 小时前
论文Review 点云配准综述 | 西北工业大学 | 3D Registration in 30 Years: A Survey | (一) 帧间粗配准
3d·机器人·slam·点云配准