CCC 2025 Junior 题解

news/2025/3/6 15:12:50/文章来源:https://www.cnblogs.com/kkman2000/p/18755214

以下是针对CCC Junior组一至五题的题解,包括思路讲解和对应的C++代码实现:

题目 J1: Roller Coaster Ride

思路讲解
本题要求判断给定位置的人是否能在下一班过山车上。我们需要计算火车的总承载人数,即火车的车厢数乘以每节车厢的承载人数。如果当前位置的人数小于或等于总承载人数,则可以上车,输出 "yes";否则输出 "no"。

C++代码

#include <iostream>
using namespace std;int main() {int N, C, P;cin >> N >> C >> P;if (N <= C * P) {cout << "yes" << endl;} else {cout << "no" << endl;}return 0;
}

题目 J2: Donut Shop

思路讲解
本题要求计算一天结束时剩余的甜甜圈数量。我们需要初始化一个变量来存储剩余的甜甜圈数量,然后根据每个事件更新这个数量。如果事件是添加('+'),则增加相应的数量;如果事件是出售('-'),则减少相应的数量,但要确保剩余数量不小于0。

C++代码

#include <iostream>
using namespace std;int main() {int D, E, Q;cin >> D >> E;for (int i = 0; i < E; ++i) {char event;cin >> event >> Q;if (event == '+') {D += Q;} else {D -= Q;if (D < 0) D = 0;}}cout << D << endl;return 0;
}

题目 J3: Product Codes

思路讲解
本题要求将原始产品代码转换为新格式。新格式要求移除所有小写字母,保留大写字母的顺序,并将所有整数相加。我们可以通过遍历原始代码,识别大写字母和整数,然后按照要求构建新代码。

C++代码

#include <iostream>
#include <string>
#include <cctype>
using namespace std;int main() {int N;cin >> N;while (N--) {string code;cin >> code;long long sum = 0;string result;for (char c : code) {if (isupper(c)) {result += c;} else if (isdigit(c)) {string num;while (isdigit(c)) {num += c;c = next(code.begin(), distance(code.begin(), &c) + 1)->operator *();}sum += stoll(num);}}result += to_string(sum);cout << result << endl;}return 0;
}

题目 J4: Sunny Days

思路讲解
本题要求找到最长的连续晴天序列,假设只有一天的数据是错误的。我们可以通过计算每个可能的错误日对最长晴天序列的影响来解决这个问题。首先,找到所有连续的晴天序列;然后,尝试将每个非晴天(P)转换为晴天(S),计算可能的最长晴天序列。

C++代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int N;cin >> N;vector<char> days(N);for (int i = 0; i < N; ++i) {cin >> days[i];}int maxConsecutive = 0;int current = 0;for (int i = 0; i < N; ++i) {if (days[i] == 'S') {current++;} else {maxConsecutive = max(maxConsecutive, current);current = 0;}}maxConsecutive = max(maxConsecutive, current);int overallMax = 0;for (int i = 0; i <= N; ++i) {int temp = 0, tempMax = 0;for (int j = i; j < N; ++j) {if (days[j] == 'S') {temp++;} else {tempMax = max(tempMax, temp);temp = 0;}}tempMax = max(tempMax, temp);if (i > 0 && days[i - 1] == 'P') tempMax++;overallMax = max(overallMax, tempMax);}cout << overallMax << endl;return 0;
}

题目 J5: Connecting Territories

思路讲解
本题要求在网格上找到从上到下的最小路径成本。网格上的每个单元格都有一个成本,成本按照一定模式重复。我们可以使用动态规划来解决这个问题,从第一行开始,逐步计算到达每一行每个单元格的最小成本。

C++代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int R, C, M;cin >> R >> C >> M;vector<vector<int>> cost(R, vector<int>(C));for (int i = 0; i < R; ++i) {for (int j = 0; j < C; ++j) {cost[i][j] = (i * C + j + 1) % M;if (cost[i][j] == 0) cost[i][j] = M;}}vector<vector<int>> dp(R, vector<int>(C, 0));for (int j = 0; j < C; ++j) {dp[0][j] = cost[0][j];}for (int i = 1; i < R; ++i) {for (int j = 0; j < C; ++j) {int minCost = INT_MAX;if (j > 0) minCost = min(minCost, dp[i - 1][j - 1]);if (j < C - 1) minCost = min(minCost, dp[i - 1][j + 1]);minCost = min(minCost, dp[i - 1][j]);dp[i][j] = minCost + cost[i][j];}}int result = INT_MAX;for (int j = 0; j < C; ++j) {result = min(result, dp[R - 1][j]);}cout << result << endl;return 0;
}

这些题解和代码实现了每个题目的基本逻辑,可能需要根据具体的输入输出格式进行调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894659.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【详细教程】智慧职教MOOC如何下载已结束课程中的视频课件PPT文档资料?

前言:智慧职教MOOC中的有些课程非常好,但是经常会遇到课程已关闭,无法打开查看。这次教大家如何用学无止下载器,把已结束无法打开的课程中的视频课件资料,下载到本地离线观看学习~ 一、电脑浏览器打开智慧职教MOOC网页版 智慧职教MOOC官网:【https://mooc.icve.com.cn/c…

[CSS 3] Tailwindcss 响应式设计

## 响应式断点 *Tailwind CSS* 默认提供了一组预设的断点,即屏幕尺寸范围,用于管理响应式样式。默认的断点包括: - *sm*: *640px* 及以上- *md*: *768px* 及以上- *lg*: *1024px* 及以上- *xl*: *1280px* 及以上- *2xl*: *1536px* 及以上 例如: ```html<img class="…

AI赋能软件测试:从自动化到智能化

一、为什么测试工程师需要关注AI? 传统测试的困境:重复劳动陷阱:手工编写测试用例、反复验证边界条件、兼容性测试的“设备海洋”消耗大量人力。“后知后觉”的反馈:性能瓶颈常在用户量激增后才暴露,修复成本高昂。“看不见的盲区”:复杂业务场景下,人类难以穷举所有异常…

No.35 Element对象属性、Element获取元素位置

、 一、元素对象属性Element对象对应网页的 HTML 元素。每一个 HTML 元素,在 DOM 树上都会转化成一个Element节点对象(以下简称元素节点)。1.1 .idElement.id 属性返回指定元素的id 属性,该属性可读写.1.2 .classNameclassName 属性用来读写当前元素节点的 class 属性。 它的…

绑定元素“seriesName”隐式具有“any”类型

const book = {...actions: {mergeBook({ state, commit }, data: any) {return axios.patch(`/books/merge`, data).then((res: any) => {return res;});}}, };在typescript的编译过程中,函数的参数被提示 {变量名} implicitly has an ‘any’ type,但是笔者也不知道应该…

跨应用启动UIAbility

跨应用启动UIAbility 上篇介绍了应用内启动UIAbility,这篇介绍下应用间的启动方式 应用间UIAbility跳转使用openLink()与startAbility()两个接口均可以实现,应用间跳转主要基于应用链接进行实现(应用内界面跳转页可以通过URI的方式打开),应用链接格式scheme://host[:port]/p…

virtualbox下载安装配置

virtualbox下载安装配置 下载 https://www.virtualbox.org/ 官网 https://www.virtualbox.org/wiki/Downloads 官网下载页 https://www.filehorse.com/download-virtualbox/old-versions/ 历史版本推荐使用第三个网址即可,我这里是安装的6.1.26版本 安装 右键安…

奶龙验证app

主要加密逻辑和密文 先encrypt加密 然后进行AES/GCM/NoPadding加密 再使用base64加密 对密文解密为乱码,所以将其转换为hexAES-GCM模式 解密时需要的tag是在加密的过程中产生的 为密文的后2,4,8或16位解密 “{”的ASCII码为123encrypt加密在so层为魔改base64大概可以这么理解…

又一中国团队惊艳全球!Manus开启AI智能新篇章

大家好啊,我是仙生。 本来今天还是分享一些有意思的网站,但是早上醒来看到卡神@数字生命卡兹克又熬夜紧跟AI时事写了一篇文章,好家伙我知道这会AI圈又要爆了。 而果不其然的是,一个上午过去,AI概念股又是狂涨,DeepSeek概念股猛猛涨。 那到底咋回事呢? AI领域又现惊人突破…

使用 CloudDM 和企业微信流程化管理数据库变更审批

CloudDM 是一个专为团队协同工作打造的数据库数据管控平台。在管控数据库安全变更的过程中,为提高效率,方便用户使用,CloudDM 接入了主流 OA 协同办公系统(包括钉钉、飞书、企业微信),支持实时通知与移动办公,满足广大企业用户的实际需求。 本文将介绍如何使用 CloudDM …

从中国到全球:头部HR SaaS厂商易路助力奥佳华全球布局增强国际竞争力

作为中国人力资源SaaS领军企业,易路人力资源科技成立于2004年,20年来坚持面向全球中大型企业,以科技赋能人力资源。易路People+是为中大型企业打造的以薪酬为核心的一站式人力资源软件平台,将全球800万用户的先进管理理念与实践总结融合至标准化的SaaS平台,覆盖企业人力资…

〖大系统 观数智〗: 油气大模型部署应用策略讨论

概述:根据业务层级和专业角色部署规模适当的模型。从基础模型到行业/领域模型,再到各层级和专业模型,按照大系统观全息思维,采取逐级知识蒸馏的策略保持系统的结构完整性、一致性和协作能力,逐级缩小模型规模,同时按需分布式自组织部署,配合本地知识库等,建设全息有机系…