机器人扫地 二分答案

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;
 }
相关推荐
天空属于哈夫克312 分钟前
域群运营机器人:实现大规模社群标准化管理与自动化交互
机器人·自动化·交互
捷米特网关模块通讯25 分钟前
EtherNet/IP 转 EtherCAT 工业数据采集网关上传汽车产线关键作业数据
机器人·工业自动化·汇川plc·网关模块·总线协议
梦想的旅途21 小时前
企微群自动回复机器人:基于 API 的社群交互与自动化响应方案
机器人·交互·企业微信
IT观测1 小时前
无人机位姿测量工具推荐:高精度光学动作捕捉在机器人科研中的关键基石
机器人·无人机
沫儿笙1 小时前
安川YASKAWA焊接机器人碳钢焊接节气
机器人
着迷不白2 小时前
Ubuntu 云服务部署 OpenClaw 并接入飞书机器人
ubuntu·机器人·飞书·openclaw
宁波阿成2 小时前
本地centos7虚拟机安装openclaw龙虾过程记录
ai·机器人·qq·openclaw
大江东去浪淘尽千古风流人物2 小时前
【claw】 OpenClaw 的架构设计探索
深度学习·算法·3d·机器人·slam
weiyvyy2 小时前
无人机嵌入式开发实战-自主导航与任务规划
人工智能·嵌入式硬件·机器人·无人机·信息化
天空属于哈夫克32 小时前
Java 企微机器人开发:高性能、可扩展的私域自动化集成方案
java·机器人·企业微信