小明放学——CCFCSP认证题目

CSP题目:计算小明回家所需时间 CSP 题目 问题描述:一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出发时刻路上经过的所有红绿灯的指示状态。请帮忙计算小明此次回家所需要的时间。 输入格式:   输入的第一行包含空格分隔的三个正整数 r、y、g,表示红绿灯的设置。这三个数均不超过 106。   输入的第二行包含一个正整数 n,表示小明总共经过的道路段数和路过的红绿灯数目。   接下来的 n 行,每行包含空格分隔的两个整数 k、t。k=0 表示经过了一段道路 阅读详情

题目内容:

  • 题目背景

  汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。

  • 问题描述

  一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出发时刻路上经过的所有红绿灯的指示状态。请帮忙计算小明此次回家所需要的时间。

  • 输入格式

  输入的第一行包含空格分隔的三个正整数 r、y、g,表示红绿灯的设置。这三个数均不超过 1e6。
  输入的第二行包含一个正整数 n,表示小明总共经过的道路段数和路过的红绿灯数目。
  接下来的 n 行,每行包含空格分隔的两个整数 k、t。k=0 表示经过了一段道路,将会耗时 t 秒,此处 t 不超过 1e6;k=1、2、3 时,分别表示出发时刻,此处的红绿灯状态是红灯、黄灯、绿灯,且倒计时显示牌上显示的数字是 t,此处 t 分别不会超过 r、y、g。

  • 输出格式

  输出一个数字,表示此次小明放学回家所用的时间。

  • 样例输入

30 3 30
8
0 10
1 5
0 11
2 2
0 6
0 3
3 10
0 3

  • 样例输出

46

  • 样例说明

  小明先经过第一段路,用时 10 秒。第一盏红绿灯出发时是红灯,还剩 5 秒;小明到达路口时,这个红绿灯已经变为绿灯,不用等待直接通过。接下来经过第二段路,用时 11 秒。第二盏红绿灯出发时是黄灯,还剩两秒;小明到达路口时,这个红绿灯已经变为红灯,还剩 11 秒。接下来经过第三、第四段路,用时 9 秒。第三盏红绿灯出发时是绿灯,还剩 10 秒;小明到达路口时,这个红绿灯已经变为红灯,还剩两秒。接下来经过最后一段路,用时 3 秒。共计 10+11+11+9+2+3 = 46 秒。

评测用例规模与约定

  有些测试点具有特殊的性质:
  * 前 2 个测试点中不存在任何信号灯。
  测试点的输入数据规模:
  * 前 6 个测试点保证 n ≤ 1e3。
  * 所有测试点保证 n ≤ 1e5。

 

题目分析:

首先我们必须用弄懂题目的意思。每个t,只是出发时刻路上经过的所有红绿灯的指示状态,仅仅是出发时刻,也就是说,当小明具体到达路上看到的红绿灯的剩余时间,并不一定是t,红绿灯一直在根据小明走的时间,按照红、绿、黄的顺序在变化,这个题目的关键也就是:算出小明到达某个路口看到红绿灯在这个时刻的剩余时间。

我的思路:先让 time(小明走的时间) 和 红灯绿灯黄灯之和进行取模,这样就可以将红绿黄这样完整的几轮给约去,然后用t(出发时刻路上经过的所有红绿灯的指示状态)和 time 进行相减 ,此结果的绝对值 一定小于 红灯绿灯黄灯之和,然后在这一轮具体情况具体分析得出答案。

必须注意: int 最大也就 1e9 ,但是按照题目要求,t 不超过 1e6。 n ≤ 1e5 。t*n=1e11 超出 int 范围 ,所以time必须使用 long long类型。

代码:

#include<iostream>
using namespace std;
int main(){
int r,y,g,n,k,t;
long long time=0;
	scanf("%d%d%d",&r,&y,&g);
	scanf("%d",&n);
int u;
int z; 
	for(int i=0;i<n;i++){
		cin>>k;
		switch(k){
			case 0:  //直走
			 cin>>t;
			 time+=t;
			 break;
			case 1:  //红灯
			 cin>>t;
			 u=time%(r+g+y);    //此时红绿灯经过完整的几轮之后
			 z=t-u;			
			if(z==0){
				//时间不增加
			}
			else if(z>0){
				time+=z;
			}
			else if(z<0&&z+g>0){
				//绿灯直接走
			}
			else if(z+g<=0&&z+g+y>0){
				time+=z+g+y+r;      //黄灯之后红灯
			}
			else if(z+g+y<=0&&z+g+y+r>0){
				time+=z+g+y+r;       //红灯

			}
			break;
			case 2:    //黄灯
			cin>>t;
			u=time%(r+g+y);    
			z=t-u;
			if(z==0){
				//时间不增加
				time+=r;
			}
			else if(z>0){
				time+=z+r;
			}
			else if(z<0&&z+r>0){
				time+=z+r;
			}
			else if(z+r<=0&&z+r+g>0){
				//绿灯直接走
			}
			else if(z+r+g<=0&&z+r+g+y>0){
				time+=z+r+g+y+r;       //红灯
			}
			break;
			case 3:  //绿灯
			cin>>t;
			u=time%(r+g+y);    
			z=t-u;
			if(z==0){
				time+=y+r;
			}
			else if(z>0){
				//绿灯直接走
			}
			else if(z<0&&z+y>0){
				time+=z+y+r;
			}
			else if(z+y<=0&&z+y+r>0){
				time+=z+y+r;
			}
			else if(z+y+r<=0&&z+y+r+g>0){
					//绿灯直接走
			}
			break;


		}



	}

  cout<<time<<endl;




	return 0;
}

 

 

CCF-CSP考试历年真题题型分类 基础算法: 3288. 稀疏向量 (双指针) 3412. 邻域均值 (二维前缀和) 3298. 期末预测之最佳阈值 (双指针+二维前缀和) 哈希表: 3192. 出现次数最多的数 3197. 相反数 3207. 门禁系统 枚举、排序: 3292. 称检测点查询 3194. 最大的矩形 3202. 相邻数对 3209. 集合竞价 3213. 数字排序 3217. 数列分段 3227. 折点计数 3232. 最大波动 3237. 中间数 3247. 打酱油 3252. 最小差值 3263. 买菜 3283. 回 阅读详情

相关推荐

CCF历年真题整理【已更新至202104】

说明:本文持续更新,若长时间未更新,请评论催催我。 以下题目均来自cspro.org,点击进入测试页面,侵删歉。 部分题目我已经解决,并给出参考代码。然而有些我还没有尝试解决,但先把题目贴给大家,大家可以自行去官网练习。 如果对我的解法有疑问,可以联系我一起交流学习。CCF交流学习QQ群:696037138 需要了解CCF的常见问题,请看这篇博客:CCF考前必看(最后更新时间:2019.10.03...

WINGREZ‘S BLOG 12万+

【题解】 ccf csp 201812-2 小明放学

试题编号: 201812-2 试题名称: 小明放学 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景   汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述   一次放学...

weixin_44505865的博客 3349

CCF CSP2017.09 第11次题目答案代码.docx

CCF CSP 2017.09 第11次 题目 解析 答案C++ 100分代码.

Python入门习题(43)——CCF CSP认证考试真题:小明放学

CCF CSP认证考试真题(201812-2):小明放学问题描述解题思路参考答案测试用例小结 问题描述 试题编号: 201812-2 试题名称: 小明放学 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景   汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安...

yedouble的专栏 1599

RS422总线

①.RS422发送驱动器无高阻三态(浮空)状态RS422收发芯片,发送脚固定强驱动输出,永远钳位 A/B 差分电平,不能关断、不能悬空,只要芯片上电,TX+、TX - 就强制输出互补电压(一路高、一路低)。多条发送并联在同一组差分线上:两个驱动器一个拉 A 高、一个拉 A 低,B 线反向拉扯 → 电源→地大电流对灌,瞬间芯片过流发烫烧毁、总线电平短路错乱。注意:RS485 带DE/RE 收发使能脚:不用发送时可关闭驱动器,输出变成高阻浮空,让出总线,因此能多节点分时发送。③.多点通信方式,一主多从方式;

zhuimeng_1234的博客 222

Linux文件操作四剑客

① /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 yyyy-MM-dd / yy-MM-dd 格式。⑥“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$” //正浮点数。

wuds_158的博客 1609

CSP小明放学(好题)

小明放学 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景 汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述 一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出发时刻路上经过的所有红绿灯的指示状态。请

qq_43738331的博客 1204

局域网ip冲突检测工具_python 小工具实现 windows笔记本与 ipad数据互传

宅在家没事的时候就开始琢磨ipad的进阶使用,由于没有mac无法隔空投送,ipad与windows的数据交互表现极差,所以设计了这个ftp小工具。当然,这个工具不仅仅能用于windows与ipad,还可以用于局域网任意两台设备之间程序源码与下载见文章末尾使用说明windows端:biubiubiu.exeipad端: appsotre下载 FE文件管理器windows端操作在c盘下创建ftp目录...

weixin_39866265的博客 4435

CCF小白刷题之路---201812-2 小明放学(C/C++ 100分)

一、题目描述 题目背景   汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述   一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出发时刻路上经过的所有红绿灯的指示状态。请帮忙计算小明此次回家所需要的时间。    输入格式

要像蜗牛一样一步一步往上爬! 1409

二叉树的操作之统计二叉树中节点的个数

一,问题描述 给定一颗二叉树,已知其根结点。 ①计算二叉树所有结点的个数 ②计算二叉树中叶子结点的个数 ③计算二叉树中满节点(度为2)的个数   二,算法分析 找出各个问题的基准条件,然后采用递归的方式实现。 ①计算二叉树所有结点的个数 1)当树为空时,结点个数为0,否则为根节点个数 加上 根的左子树中节点个数 再加上 根的右子树中节点的个数 借助遍历二叉树的思路,每访问一个结...

weixin_34200628的博客 4568

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】

打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。

CodingCos的博客 2047

CCF CSP认证 历年题目自练Day19

CCF CSP认证 历年题目自练Day19

m0_63216005的博客 567

华为嵌入式面试题及参考答案(持续更新)

异步是指在程序执行过程中,某些任务不需要等待立即完成就可以继续执行其他任务的过程。在计算机编程中,异步通常用于处理长时间运行的操作,如文件读写、网络通信等,以避免阻塞主线程。异步处理通常涉及到回调函数、事件循环、协程或未来的概念。使用宏定义来避免命名冲突。#else#endif堆和栈是计算机程序中用于存储数据的两种不同类型的内存区域。

大模型大数据攻城狮的专栏 2483

CCFCSP认证历年第二题(Python版汇总)

CCFCSP认证历年第二题(Python版汇总)

qq_69051120的博客 2209

遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程

1.新建shp文件地理坐标系保持和影像一致,面类型2.打开属性表3.添加字段这里分类6类,点击添加值添加添加完毕开始人工选地物类型,制作数据集开始标注,标注的时候可以借助谷歌地图来看标记足够多的样本打开面转栅格工具设置nodata值为15。

热爱分享,热爱记录 2524

S32DS S32K312 LPSPI + DMA配置异步SPI

配置DMA->Specific Configuration->Dma Logic Channel->Configuration->Global。SpiPhyUnitMapping:将该配置Mapping到某一路Spi,此工程配置为Spi1,遂选择LPSPI_1。配置的该路SPI的片选ID,此处ID对应配置Pin脚时lpspi_pcs后的下表(本工程此处为PCS3)配置该路SPI对应的SPI硬件单元ID,本工程配置为Lpspi1,因此配置为CSIB1。首先配置SPI的Pin脚,此处使用的是LPSPI_1。

希望我的博客,能帮上你解决学习中工作中所遇到的问题 2362

CCF-CSP认证 刷题路线分享

刷题路线

2302_79939572的博客 2901

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

201812-2 小明放学(必须用longlong,输入顺序与灯的循环顺序不同)

题目背景 汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述 一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出...

hey_dom2016的博客 276

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

201812-1 小明上学

csp认证之python代码

Ustinianljm的博客 313

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

CCF 201812-2----小明放学----区间问题

试题编号: 201812-2 试题名称: 小明放学 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景   汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述   一次放学的...

Ashen的博客 622

CSP201812-2小明放学

题目背景 汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述 一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出...

学习记录 591

CCF CSP 201812-2 小明放学

csp认证2018年12月第二道真题小明回家,私认为已经解释的很清楚了

weixin_62354147的博客 340

CCF 201812-2 小明放学

题目背景 汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述 一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了...

weixin_44358208的博客 355

ccf_201812-2_小明放学(java&c++&python)

试题编号: 201812-2 试题名称: 小明放学 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景   汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给...

aoe_xiu的博客 673

小明放学

试题编号: 201812-2 试题名称: 小明放学 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景   汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给...

sz891016的博客 398

CCF CSP刷题—小明放学

【题目描述】 依次放学的时候,小明已经规划好了自己的回家路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出发时刻路上经过的所有红绿灯的指示状态。请帮忙计算小明此次回家所需要的时间。 【输入格式】 输入的第一行包含空格分隔的三个正整数r,y,g,表示红绿灯的设置. 输入的第二行包含一个正整数n,表示小明总共经过的道路段数和路过的红绿灯数目。 接下来的n行,每行...

qq_36795903的博客 979
上一篇: Jieba、NLTK等中英文分词工具进行分词
下一篇: S. Segmentation——CodeForces
木禾DING
博客等级 码龄8年 191粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值