机器人扫地 二分答案

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;
 }
相关推荐
一点人工一点智能5 分钟前
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
机器人·具身智能·智能决策
SkyXZ~1 小时前
机器人/智能车纯视觉巡线经典策略—滑动窗口+直方图法
计算机视觉·机器人·视觉巡线·智能车
nenchoumi31199 小时前
UE5 学习系类(七)导入bridge资产包
windows·学习·ue5·机器人
xwz小王子9 小时前
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
机器人·装配
nenchoumi311920 小时前
UE5 学习系列(二)用户操作界面及介绍
windows·学习·ue5·机器人
加百力1 天前
自动驾驶+人形机器人?亚马逊即将测试人形机器人送货
人工智能·机器人·自动驾驶
MYH5161 天前
深度学习聊天机器人 需要考虑
人工智能·深度学习·机器人
nenchoumi31192 天前
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
ue5·机器人·无人机
老胖闲聊2 天前
Python ROS2【机器人中间件框架】 简介
python·中间件·机器人
老歌老听老掉牙2 天前
旋量理论:刚体运动的几何描述与机器人应用
python·算法·机器学习·机器人·旋量