【PAT甲级】1095 Cars on Campus (30 分)
题意:
输入两个正整数N和K(N<=1e4,K<=8e4),接着输入N行数据每行包括三个字符串表示车牌号,当前时间,进入或离开的状态。接着输入K次询问,输出当下停留在学校里的车辆数量。最后一行输出总计停留时间最长的车牌号(字典序升序输出)和停留总时。
AAAAAccepted code:
//因为一天只有86400秒,所以可以用一个car数组在统计车辆停留时间时在进入时间+1,离开时间-1。再用一个sum数组扫一遍,sum[i]=sum[i-1]+car[i],即可表示当下时间有多少辆车还在停留在校园内。
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;
vector<pair<string,int> >v[];
int sum[],car[];
int t[];
map<int,string>id;
vector<string>name;
int a[];
void clear(string&s){
string ss;
swap(s,ss);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,k;
cin>>n>>k;
int cnt=;
for(int i=;i<=n;++i){
string s;
cin>>s;
string t;
cin>>t;
string f;
cin>>f;
if(!mp[s])
mp[s]=++cnt;
id[mp[s]]=s;
int flag=;
if(f[]=='i')
flag=;
v[mp[s]].push_back({t,flag});
}
for(int i=;i<=cnt;++i){
sort(v[i].begin(),v[i].end());
string now;
int flag=;
for(int j=;j<v[i].size();++j){
if(v[i][j].second==){
now=v[i][j].first;
flag=;
}
else{
if(flag){
string tamp=v[i][j].first;
int start=(now[]-'')*+(now[]-'')*+(now[]-'')*+(now[]-'')*+(now[]-'')*+(now[]-'');
int over=(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'');
++car[start];
--car[over];
flag=;
clear(now);
t[i]+=over-start;
}
}
}
}
sum[]+=car[];
for(int i=;i<;++i)
sum[i]=sum[i-]+car[i];
for(int i=;i<=k;++i){
string tamp;
cin>>tamp;
int tt=(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'')*+(tamp[]-'');
cout<<sum[tt]<<"\n";
}
int mx=;
for(int i=;i<=cnt;++i)
mx=max(mx,t[i]);
for(int i=;i<=cnt;++i)
if(mx==t[i])
name.push_back(id[i]);
sort(name.begin(),name.end());
for(int i=;i<name.size();++i)
cout<<name[i]<<" ";
a[]=mx/;
mx%=;
a[]=mx/;
mx%=;
a[]=mx/;
mx%=;
a[]=mx/;
mx%=;
a[]=mx/;
mx%=;
a[]=mx;
cout<<a[]<<a[]<<":"<<a[]<<a[]<<":"<<a[]<<a[];
return ;
}
【PAT甲级】1095 Cars on Campus (30 分)的更多相关文章
- PAT甲级1095. Cars on Campus
PAT甲级1095. Cars on Campus 题意: 浙江大学有6个校区和很多门.从每个门口,我们可以收集穿过大门的汽车的进/出时间和车牌号码.现在有了所有的信息,你应该在任何特定的时间点告诉在 ...
- PAT甲级——1095 Cars on Campus (排序、映射、字符串操作、题意理解)
本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/93135047 1095 Cars on Campus (30 分 ...
- PAT甲级——1131 Subway Map (30 分)
可以转到我的CSDN查看同样的文章https://blog.csdn.net/weixin_44385565/article/details/89003683 1131 Subway Map (30 ...
- PAT 甲级 1076 Forwards on Weibo (30分)(bfs较简单)
1076 Forwards on Weibo (30分) Weibo is known as the Chinese version of Twitter. One user on Weibo m ...
- PAT 甲级 1068 Find More Coins (30 分) (dp,01背包问题记录最佳选择方案)***
1068 Find More Coins (30 分) Eva loves to collect coins from all over the universe, including some ...
- PAT 甲级 1045 Favorite Color Stripe (30 分)(思维dp,最长有序子序列)
1045 Favorite Color Stripe (30 分) Eva is trying to make her own color stripe out of a given one. S ...
- PAT 甲级 1018 Public Bike Management (30 分)(dijstra+dfs,dfs记录路径,做了两天)
1018 Public Bike Management (30 分) There is a public bike service in Hangzhou City which provides ...
- PAT 甲级 1014 Waiting in Line (30 分)(queue的使用,模拟题,有个大坑)
1014 Waiting in Line (30 分) Suppose a bank has N windows open for service. There is a yellow line ...
- PAT (Advanced Level) Practise - 1095. Cars on Campus (30)
http://www.patest.cn/contests/pat-a-practise/1095 Zhejiang University has 6 campuses and a lot of ga ...
随机推荐
- C++ 实例练习-替换原生数组
C++ 实例练习-替换原生数组 main.cpp #include <stdio.h> #include "intarray.h" int main(int argc, ...
- 在多租户(容器)数据库中如何创建PDB:方法1 从种子创建PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:从零开始创建一个PDB(从PDB$SEED创建新的PDB) 对应路径:Creating a PDB --> Creating ...
- 【转载】各种SQL在PIG中实现
转自:http://guoyunsky.iteye.com/blog/1317084 我这里以Mysql 5.1.x为例,Pig的版本是0.8 同时我将数据放在了两个文件,存放在/tmp/data_f ...
- 新建表需要原表的数据,mysql 如何把查询到的结果插入到新表中
项目运用情景:新建表需要原表的数据 1. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO 目标表 SELECT * FROM 来源表 ...
- util之Set
1.定义: Set<Integer>set = new TreeSet<Integer>(); 注意: TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不 ...
- java+selenium打开浏览器实现后台静默运行
简介:java selenium搭建无界面浏览器 PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScri ...
- CentOS7网络配置:静态IP和DHCP
1.打开并编辑网络配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33 [root@localhost network-scripts]# vim ifcfg ...
- EAC3 Spectral Extension Process
1.overview 当使用Spectral extension时,channel中的高频部分的transform coefficients由低频部分合成. transform coefficient ...
- 励志写一篇有味道的博文------json
之前有更古老的数据交互中间键xml,但是由于比较复杂后来出现了json json :轻量级数据交换格式 json与python数据对比 json python object d ...
- python+selenium:浏览器webdriver操作(1)--基本对象定位
1.简单对象的定位-----自动化测试的核心 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证 ...