1095 Cars on Campus (30 分)

解题思路

  • 首先得找出in和out都匹配的车辆,不然在后面找有多少辆车在里面且pair是很麻烦的
  • 先按车牌相同的筛选出来pair的停车和离开的时间
  • 将其保存在car数组里面,并将car排序
  • 通过car数组可以知道在当前车之前有多少辆车在里面,in记为1,out记为-1
  • 比较该车与条件时间,可以知道车辆数

code

#include <bits/stdc++.h>
using namespace std;
struct node{
    string id;
    int time,status;
};
bool cmp1(node a,node b){
    return a.id!=b.id?a.id<b.id:a.time<b.time;
}
bool cmp2(node a,node b){
    return a.time<b.time;
}
int main(){
    int n,m,hh,mm,ss,maxt=-1,time=0,j=0;
    string s;
    cin>>n>>m;
    vector<node>res(n),car;
    for(int i=0;i<n;i++){
        cin>>res[i].id;
        scanf("%d:%d:%d",&hh,&mm,&ss);
        res[i].time=hh*3600+mm*60+ss;
        cin>>s;
        s=="in"?res[i].status=1:res[i].status=-1;//-1表示离开一辆车
    }
    sort(res.begin(),res.end(),cmp1);
    map<string ,int> ans;
    for(int i=1;i<n;i++){
        if(res[i].id==res[i-1].id&&res[i].status==-1&&res[i-1].status==1){
            car.push_back(res[i-1]);
            car.push_back(res[i]);
            ans[res[i-1].id]+=res[i].time-res[i-1].time;
            maxt=max(ans[res[i-1].id],maxt);
        }
    }
    sort(car.begin(),car.end(),cmp2);
    vector<int> pos(n);
    for(int i=0;i<car.size();i++)
        i?pos[i]=pos[i-1]+car[i].status:pos[i]+=car[i].status;//截止到该车前有多少辆车
    while(m--){
        scanf("%d:%d:%d",&hh,&mm,&ss);
        time=hh*3600+mm*60+ss;
        while(j<car.size()){
            if(car[j].time>time){
                cout<<pos[j-1]<<endl;
                break;
            }else if(j==car.size()-1)//最后一辆车还是小于给定时间是无法输出的
                cout<<pos[j]<<endl;
            j++;
        }
    }
    for(auto it:ans) if(it.second==maxt) cout<<it.first<<' ';
    printf("%02d:%02d:%02d",maxt/3600,(maxt%3600)/60,maxt%60);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动驾驶车辆的身体视觉和行为是指车辆通过感知和行动来自主地驾驶。这个概念是为了解决自动驾驶车辆在交通路况、人行横穿等复杂情况下的感知和决策问题。通过车辆感知传感器,如摄像头、激光雷达和超声波传感器等,自动驾驶系统可以实时获取周围环境的信息。然后,通过深度学习和图像处理技术,系统可以将传感器数据转化为可理解和处理的场景信息,如道路、车辆、行人和障碍物等。 基于感知信息,自动驾驶车辆需要做出决策和行动。这涉及到对不同情况的判断和预测,如车辆是否需要加速、刹车或转向等。同时,自动驾驶车辆还需要具备与其他交通参与者的协调能力,如保持安全距离、按照交通规则行驶等。 为了实现自动驾驶车辆的“身体视觉和行为”,需要综合运用计算机视觉、机器学习、人工智能和控制理论等多学科的知识。此外,还需要建立高精度的地图和定位系统,以确保车辆准确地感知和理解周围环境。同时,由于自动驾驶技术的安全性和可靠性至关重要,还需要对系统进行严格的测试和验证,以确保其在各种场景下都能正确地做出决策和行动。 总而言之,自动驾驶车辆的身体视觉和行为是为了实现车辆自主地感知和响应周围环境,以实现安全、高效、智能的自动驾驶。在未来,随着技术的不断进步,自动驾驶车辆将能够更好地理解和适应各种复杂的道路场景,为人们的出行带来更多的便利与安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值