第15次CCF CSP真题解
1、小明上学
题目链接:https://sim.csp.thusaac.com/contest/15/problem/0
本题是模拟红绿灯计时的题,根据红绿灯转换规则可知,红灯后面通常是绿灯,绿灯后面是黄灯,黄灯过后又是红灯。根据题意,当k = 0时,表示小明经过一段道路,此时进行计时操作;当k = 1时,表示小明看到了一个红灯,此时进行计时操作;当k = 2时,表示小明看到了一个黄灯,此时计时操作包括黄灯和红灯的计时;当k = 3时,表示小明看到了一个绿灯,此时可以直接通过,不用进行计时操作。
100分代码:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{int r,y,g;cin >> r >> y >> g; int n;cin >> n;int k[110],t[110];for(int i = 0; i < n; i++){cin >> k[i] >> t[i];}int sum = 0;for(int i = 0; i < n; i++){if(k[i] == 0 || k[i] == 1)sum += t[i];else if(k[i] == 2)sum += t[i] + r;}cout << sum << endl;return 0;
}
评测结果:

2、小明放学
题目链接:https://sim.csp.thusaac.com/contest/15/problem/1
本题难度比第一题增加了不少,小明在放学时已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。当经过一段道路时,进行计时操作即可。当经过红绿灯时,需要考虑红绿灯转换的周期问题,红灯、黄灯和绿灯都亮过后算一个周期,具体的周期转换情况如下图所示:
| 情况1 | |||||||||||
| t | g | y | r | g | y | r | g | y | r | g | y |
| 5 | 30 | 3 | 30 | 30 | 3 | 30 | 30 | 3 | 30 | 30 | 3 |
| 红 | 绿 | 黄 | 红 | 绿 | 黄 | 红 | 绿 | 黄 | 红 | 绿 | 黄 |
| 等待 | 通过 | 等待 | 等待 | 通过 | 等待 | 等待 | 通过 | 等待 | 等待 | 通过 | 等待 |
| 情况2 | |||||||||||
| t | r | g | y | r | g | y | r | g | y | r | g |
| 2 | 30 | 30 | 3 | 30 | 30 | 3 | 30 | 30 | 3 | 30 | 30 |
| 黄 | 红 | 绿 | 黄 | 红 | 绿 | 黄 | 红 | 绿 | 黄 | 红 | 绿 |
| 等待 | 等待 | 通过 | 等待 | 等待 | 通过 | 等待 | 等待 | 通过 | 等待 | 等待 | 通过 |
| 情况3 | |||||||||||
| t | y | r | g | y | r | g | y | r | g | y | r |
| 10 | 3 | 30 | 30 | 3 | 30 | 30 | 3 | 30 | 30 | 3 | 30 |
| 绿 | 黄 | 红 | 绿 | 黄 | 红 | 绿 | 黄 | 红 | 绿 | 黄 | 红 |
| 通过 | 等待 | 等待 | 通过 | 等待 | 等待 | 通过 | 等待 | 等待 | 通过 | 等待 | 等待 |
对于红绿灯周期转换过程中的计时问题,可以运用求模运算解决。
如果不会正解的话,可以根据测试点拿分,前 2 个测试点中不存在任何信号灯,所以只需在经过每一段道路时进行计时操作即可,轻轻松松20分就到手了。
20分代码:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{int r,y,g;cin >> r >> y >> g;int n;cin >> n;int k,t;long long sum = 0;for(int i = 1; i <= n; i++){cin >> k >> t;sum += t; }cout << sum << endl; return 0;
}
评测结果:

100分代码:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{int r,y,g;cin >> r >> y >> g;int n;cin >> n;int k,t;long long sum = 0;for(int i = 1; i <= n; i++){cin >> k >> t;if(k == 0)sum += t; else if(k == 1){if(sum < t + g + y){if(sum % (t + g + y) < t)sum += t - sum % (t + g + y);else if(sum % (t + g + y) >= t && sum % (t + g + y) < t + g)sum += 0;else if(sum % (t + g + y) >= t + g && sum % (t + g + y) < t + g + y)sum += t + g + y + r - sum % (t + g + y); }else if(sum >= t + g + y){if((sum - (t + g + y)) % (r + g + y) < r)sum += r - (sum - (t + g + y)) % (r + g + y);else if((sum - (t + g + y)) % (r + g + y) >= r && (sum - (t + g + y)) % (r + g + y) < r + g)sum += 0;else if((sum - (t + g + y)) % (r + g + y) >= r + g && (sum - (t + g + y)) % (r + g + y) < r + g + y)sum += r + g + y + r - (sum - (t + g + y)) % (r + g + y); }}else if(k == 2){if(sum < t + r + g){if(sum % (t + r + g) < t)sum += t + r - sum;else if(sum % (t + r + g) >= t && sum % (t + r + g) < t + r)sum += t + r - sum % (t + r + g); else if(sum % (t + r + g) >= t + r && sum % (t + r + g) < t + r + g)sum += 0; }else if(sum >= t + r + g){if((sum - (t + r + g)) % (y + r + g) < y + r)sum += y + r - (sum - (t + r + g)) % (y + r + g);else if((sum - (t + r + g)) % (y + r + g) >= y + r && (sum - (t + r + g)) % (y + r + g) < y + r + g)sum += 0; }}else if(k == 3){if(sum < t + y + r){if(sum % (t + y + r) < t)sum += 0;else if(sum % (t + y + r) >= t && sum % (t + y + r) < t + y + r)sum += t + y + r - sum % (t + y + r); }else if(sum >= t + y + r){if((sum - (t + y + r)) % (g + y + r) < g)sum += 0;else if((sum - (t + y + r)) % (g + y + r) >= g && (sum - (t + y + r)) % (g + y + r) < g + y + r)sum += g + y + r - (sum - (t + y + r)) % (g + y + r); }}}cout << sum << endl; return 0;
}
评测结果:

相关文章:
第15次CCF CSP真题解
1、小明上学 题目链接:https://sim.csp.thusaac.com/contest/15/problem/0 本题是模拟红绿灯计时的题,根据红绿灯转换规则可知,红灯后面通常是绿灯,绿灯后面是黄灯,黄灯过后又是红灯。根据题意,当k 0时&…...
STM32硬件平台
STM32 系列是 STMicroelectronics 设计的高度灵活、广泛应用的微控制器(MCU)系列,支持从低功耗应用到高性能处理的需求,适用于工业、汽车、消费电子和物联网等广泛领域。STM32 系列具有广泛的硬件种类和丰富的功能,以下…...
一文讲明白大模型分布式逻辑(从GPU通信原语到Megatron、Deepspeed)
1. 背景介绍 如果你拿到了两台8卡A100的机器(做梦),你的导师让你学习部署并且训练不同尺寸的大模型,并且写一个说明文档。你意识到,你最需要学习的就是关于分布式训练的知识,因为你可是第一次接触这么多卡…...
【人工智能-初级】第6章 决策树和随机森林:浅显易懂的介绍及Python实践
文章目录 一、决策树简介二、决策树的构建原理2.1 决策树的优缺点优点缺点 三、随机森林简介3.1 随机森林的构建过程3.2 随机森林的优缺点优点缺点 四、Python实现决策树和随机森林4.1 导入必要的库4.2 加载数据集并进行预处理4.3 创建决策树模型并进行训练4.4 可视化决策树4.5…...
时间序列预测(九)——门控循环单元网络(GRU)
目录 一、GRU结构 二、GRU核心思想 1、更新门(Update Gate):决定了当前时刻隐藏状态中旧状态和新候选状态的混合比例。 2、重置门(Reset Gate):用于控制前一时刻隐藏状态对当前候选隐藏状态的影响程度。…...
李东生牵手通力股份IPO注册卡关,三年近10亿“清仓式分红”引关注
《港湾商业观察》施子夫 9月27日,通力科技股份有限公司(以下简称,通力股份)再度提交了注册申请,实际上早在去年11月6日公司已经提交过注册,看起来公司注册环节面临卡关。公开信息显示,通力股份…...
Android13、14特殊权限-应用安装权限适配
Android13、14特殊权限-应用安装权限适配 文章目录 Android13、14特殊权限-应用安装权限适配一、前言二、权限适配三、其他1、特殊权限-应用安装权限适配小结2、dumpsys package查看获取到了应用安装权限3、Android权限系统:应用操作管理类AppOpsManager(…...
DMVPN协议
DMVPN(Dynamic Multipoint VPN)动态多点VPN 对于分公司和分总公司内网实现通信环境下,分公司是很多的。我们不可能每个分公司和总公司都挨个建立ipsec隧道 ,而且如果是分公司和分公司建立隧道,就会很麻烦。此时我们需…...
leetcode动态规划(十八)-零钱兑换II
题目 322.零钱兑换II 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬…...
2024 CSP-J 题解
2024 CSP-J题解 扑克牌 题目给出了一整套牌的定义,但是纯粹在扯淡,完全没有必要去判断给出的牌的花色和点数,我们用一个循环来依次读入每一张牌,如果这个牌在之前出现过,我们就让答案减一。这里建议用map、unorde…...
GPU 服务器厂家:中国加速计算服务器市场的前瞻洞察
科技的飞速发展,让 GPU 服务器在加速计算服务器领域的地位愈发凸显。中国加速计算服务器市场正展现出蓬勃的生机,而 GPU 服务器厂家则是这场科技盛宴中的关键角色。 从市场预测的趋势来看,2023 年起,中国加速计算服务器市场便已展…...
Hadoop集群修改yarn队列
1.修改默认的default队列参数 注意: yarn.scheduler.capacity.root.队列名.capacity总和不能超过100 <property><name>yarn.scheduler.capacity.root.queues</name><value>default,hive,spark,flink</value><description>The…...
【GPIO】2.ADC配置错误,还是能得到电压数据
配置ADC功能时,GPIO引脚弄错了,P1写成P2,但还是配置成功,能得到电压数据。 首先一步步排查: 既然引脚弄错了,那引脚改为正确的引脚,能得到数据通过第一步判断,GPIO配置似乎是不起作…...
css-元素居中方式
<section class"wrapper"><div class"content">Content goes here</div> </section>1. 使用 Flexbox Flexbox 是一种现代的布局方法,可以轻松实现居中。 .wrapper {display: flex; /* 使用 Flexbox …...
redis内存打满了怎么办?
1、设置maxmemory的大小 我们需要给 Redis设置maxmemory的大小,如果不设置的话,它会受限于系统的物理内存和系统对内存的管理机制。 2、设置内存的淘汰策略 内存的淘汰策略分为 8 种,从淘汰范围来说分为从所有的key中淘汰和从设置过期时间…...
决策算法的技术分析
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言(1)第一层级:分层状态机、分层决策树的想法(三个臭皮匠胜过一个诸葛亮)基于场景的固定规则化的分层决策核心思想(2)第二层级:数据管理的方…...
【Python爬虫】获取汽车之家车型配置附代码(2024.10)
参考大哥,感谢大哥:https://blog.csdn.net/weixin_43498642/article/details/136896338 【任务目标】 工作需要想更方便地下载汽车之家某车系配置清单;(垃圾汽车之家不给下载导出表格,配置页叉掉了车系要出来还要重新…...
JVM 加载 class 文件的原理机制
JVM 加载 class 文件的原理机制 JVM(Java虚拟机)是一个可以执行Java字节码的虚拟机。它负责执行Java应用程序和应用程序的扩展,如Java库和框架。 文章目录 JVM 加载 class 文件的原理机制1. JVM1.1 类加载器1.2 魔数1.3 元空间 2. 类加载2.1 …...
NumPy学习第九课:字符串相关函数
前言 各位有没有注意到,NumPy从第八课开始其实基本上都是讲的是NumPy的函数,而且其实就是各种函数的调用,因为NumPy是一个很强大的函数库,这对我们以后再处理项目中遇到的问题时会有很大的帮助。我们将常用的函数进行一个列举&am…...
卷积神经网络(CNNs)在处理光谱特征的序列属性时表现不佳
卷积神经网络(CNNs)在处理光谱签名的序列属性时表现不佳,主要是由于其固有网络架构的局限性。具体原因如下: 局部感受野(Local Receptive Field): CNN 的核心操作是卷积,它利用局部感…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
