题目描述:

著名旅游城市B市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案:
1. 在搭乘一次地铁后可以获得一张优惠票,有效期为45分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于45分钟,即: tbus - tsubway ≤ 45
2.搭乘地铁获得的优惠票可以累积,即可以连续搭乘若干次地铁后再连续使用优惠票搭乘公交车。
3.搭乘公交车时, 如果可以使用优惠票一定会使用优惠票;如果有多张优惠票满足条件,则优先消耗获得最早的优惠票。
现在你得到了小轩最近的公共交通出行记录,你能帮他算算他的花费吗?

输入格式:

输入的第一行包含一个正整数n,代表乘车记录的数量。接下来的n行,每行包含3个整数,相邻两数之间以一个空格分隔。第i行的第1个整数代表第i条记录乘坐的交通工具,0代表地铁,1代表公交车;第2个整数代表第i条记录乘车的票价pricei, ;第三个整数代表第i条记录开始乘车的时间ti (距0时刻的分钟数)。我们保证出行记录是按照开始乘车的时间顺序给出的,且不会有两次乘车记录出现在同一分钟。 对于30%的数据,n ≤ 1000, ti ≤ 106。另有15% 的数据,ti ≤ 107, pricei 都相等。另有15% 的数据,ti ≤ 109,pricei 都相等。对于100%的数据,n ≤ 105, ti ≤ 109, 1 ≤ pricei ≤ 1000。

输出格式:

输出一行,包含一个正整数,代表小轩出行的总花费。

限制:

空间限制:128MByte
时间限制:1秒

样例:

输入:6
0 10 3
1 5 46
0 12 50
1 3 96
0 5 110
1 6 135
输出:36

提示:

第一条记录,在第3分钟花费10 元乘坐地铁。第二条记录,在第46分钟乘坐公交车,可以使用第一 条记录中乘坐地铁获得的优惠票,因此没有花费。第三条记录,在第50分种花费12元乘坐地铁。第四条记录,在第96分钟乘坐公交车,由于距离第三条记录中乘坐地铁1超过45分钟,所以优惠票已失效,花费3元乘坐公交车。第五条记录,在第110分钟花费5元乘坐地铁。第六条记录,在第135分钟乘坐公交车,由于此时手中只有第五条记录中乘坐地铁获得的优惠票有效,而本次公交车的票价为6元,高于第五条记录中地铁的票价5元,所以不能使用优惠票,花费6元乘坐公交车。总共花费36元。

1.乘车有两种类型  0:地铁,1:公交

2.搭乘地铁后可以获得一张优惠票,票可以累计(我们必须存储所有的优惠票)

3.优惠票的使用条件是:票的有效时间在45分钟内,并且大于等于公交票价,题目中还特别强调了,优惠票按时间顺序能用则用

根据题意,我们大致能想到,这是一道模拟题,大体的逻辑也很简单,循环判断乘车记录:

1.如果是地铁票,我们就计算总费用并且存储优惠票,因为优惠票有时效性,所以我们要存储时间和票价(用于判断能不能使用)

2.如果是公交,我们就在所有的优惠票中找有没有满足条件的,有则用,没有则总费用加上当次的公交票价,注意,我们需要处理,优惠票不能重复用!

这里注意思考下复杂度问题:

乘车记录n ≤105,因为有多少次地铁乘车记录就会产生多少个优惠票,如果遇到公交记录我们就需要查找所有的优惠票,

假设有104的票,意味着每次遇到公交车都需要查询104次,时间复杂度大约为109,显然已经超时了

我们进一步考虑,我们每次查找优惠票时,有效的选择范围是45分钟内票,所以很多无效的记录被重复查找了,我们可以设置一个有效开始时间,过滤无效的票,这样查找优惠票的时间复杂度大大降低了!!

代码如下;

#include<iostream>
using namespace std;
int n,zongfei=0;
struct cym{bool f=0;int fangshi,s,t;
}a[1000001];
int main(){cin>>n;for(int i=0;i<n;i++){cin>>a[i].fangshi>>a[i].s>>a[i].t;}for(int i=0;i<n;++i){if(a[i].fangshi==0){zongfei+=a[i].s; }else{int piao=0;for(int j=max(i,45)-45;j<i;++j){if(a[j].f==0&&a[i].t-a[j].t<=45&&a[j].s>=a[i].s&&a[j].fangshi==0){a[j].f=1;piao=1;break;}}if(piao==0){zongfei+=a[i].s;}}}cout<<zongfei<<endl;return 0;
}

公交换乘 详解(C++)相关推荐

  1. 2012年东岳庙春节文化庙会门票票价及公交路线详解

    东岳庙庙会看点: 1.东岳庙传统特色非物质文化遗产展示活动:结合祈福主题推出子时祈福.请红腰带,挂福牌.画福布.绕福树.打金钟,摸铜特.玉马等活动,满足人们春节祈福迎祥.戴福还家等各种新年愿望.恢复北 ...

  2. 公交线路换乘代码PHP,微信开发之公交换乘功能代码详解

    1)API申请 2)API调用 3)[b]效果展示[/b] 4)精准查询 --------------------------------------------------------------- ...

  3. 百度地图API详解之公交导航

    原文地址:http://blog.csdn.net/sup_heaven/article/details/8461593 只是作为备忘!!! 一次调试百度地图多marker事件监听的问题,不知如何解决 ...

  4. Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!...

    Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...

  5. Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!

    Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...

  6. Qt Quick 之 PathView 详解

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Path ...

  7. 71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP

    目录 有小伙伴问:为什么没有配置 IP 地址就无法上网?IP 协议又是啥? 这要从 TCP/IP 协议说起,互联网使用的是 TCP/IP 协议,其中 IP 协议又是最重要的协议之一.IP 协议是基于  ...

  8. 商汤招股书详解:40名教授250+博士3593位工程师,AI收入亚洲第一,一年15亿研发工资支出...

    边策 李明敏 杨博雯 李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI 商汤来了! 8月28日,超级AI独角兽商汤科技,向香港联交所提交招股书,正式冲刺IPO上市. 商汤有何不同? 在招股书 ...

  9. 详解华为12种数据采集技术及应用实践

    导读:数字化转型要从根本上加强数据的可获得性,围绕我们构建的数据主题和对象丰富数据感知渠道.要追求更加实时.全面.有效.安全的数据获取. 作者:华为公司数据管理部 来源:大数据DT(ID:hzdash ...

  10. tracepro应用实例详解_十大行业气动设备 120个典型气动系统应用实例

    气动系统典型应用120例 十大行业气动设备 120个典型气动系统应用实例 按照主机功能结构.气动系统原理和系统技术特点的体系,详细介绍了煤矿机械.电力机械与石油机械,冶金机械与金属材料成型机械,化工机 ...

最新文章

  1. Android studio 设置忽略文件
  2. 分享:给入职新人的IDEA培训教程。
  3. Nat. Mach. Intell.| 机器学习显著降低药物组合筛选成本
  4. php发送指令,PHP发送AT指令实例代码
  5. iOS计算输入字符数
  6. 面试题:sql数据查询
  7. springboot + mysql + mybatis配置
  8. mysql环境变量的配置
  9. 数据结构 5-3-3 二叉树的线索化
  10. 在线 JSON 格式化校验工具
  11. Golang interface 全面介绍
  12. 电脑硬件软件相关知识
  13. oracle服务启动哪几项,Oracle服务启动项
  14. 计算机制作幻灯片视频教程,如何在电脑上制作幻灯片?
  15. 【论文阅读】水下机器人控制视觉伺服部分
  16. 手动安装jenkins默认插件
  17. HttpClient4.4.1模拟登录知乎
  18. 金庸小说里面的爱情观
  19. 医院信息化成功的关键=本质+方法+工具
  20. 网易双11“超级工程”:反欺诈系统应用实践

热门文章

  1. 数据中心运维管理经验39条
  2. 数据库性能指标 2005-04-06 19:36:14(转载)
  3. CentOS 7.x 安装教程、硬盘分区、LVM、网络配置、软件源配置、制作USB Disk、U盘安装、网络安装...
  4. 深入理解JavaScript内部原理(6): 闭包
  5. FLEX 字符串处理函数
  6. 互联网行业常见的需要考虑的问题
  7. caffe for Windows下的编译错误
  8. 四大门户金融业务接连中招,流量这把钥匙正被氧化
  9. Spring boot学习(七)Spring boot配置slf4j+logback日志框架
  10. 使用Supervisor让你的Swift Perfect服务器项目后台运行