2024 睿抗机器人开发者大赛CAIP-编程技能赛-专科组(国赛)解题报告 | 珂学家


前言

在这里插入图片描述


题解

2024 睿抗机器人开发者大赛CAIP-编程技能赛-专科组(国赛),陈越姐姐出题。

国赛比省赛,难度增强了不少,题目就剩下4个题了。

涉及堆栈,hash表,优先队列等高阶数据结构的使用,也有搜索等算法的使用。

在这里插入图片描述


RC-v1 简版2048

分值: 20

思路: 栈的使用

在这里插入图片描述
一维2048游戏,需要注意级联反应, 退出条件

#include <bits/stdc++.h>using namespace std;int main() {int n, m;cin >> n >> m;vector<int> stk;for (int i = 0; i < n; i++) {int v; cin >> v;// 级联反应while (!stk.empty() && stk.back() == v) {stk.pop_back();v++;}if (stk.size() < m) stk.push_back(v);else break;  // 这个break很关键}for (int i = 0; i < stk.size(); i++) {cout << stk[i] << " \n"[i == stk.size() - 1];}return 0;
}

RC-v2 为 i 做 e

分值: 25分

思路:模拟 + hash表运用

#include <bits/stdc++.h>using namespace std;int main() {int n;cin >> n;map<string, int> mp;for (int i = 0; i < n; i++) {string s, x;cin >> s >> x;mp[s] = (x[0] == 'i' ? 0 : 1);}vector<int> ans;int m;cin >> m;for (int i = 0; i < m; i++) {int k; cin >> k;int acc = 0;for (int j = 0; j < k; j++) {string s;cin >> s;acc += mp[s];}if (acc == 0) ans.push_back(i + 1);}if (ans.empty()) cout << "None" << endl;else {for (int i = 0; i < ans.size(); i++) {cout << ans[i] << " \n"[i== ans.size() - 1];}}return 0;
}

RC-v3 乘法小宇宙

分值: 25分

思路: 搜索

在这里插入图片描述

从图中挖掘限制条件:

  1. a有n位
  2. b是2位
  3. c是n+1位
  4. d是n+1位
  5. p是n+2位

同时abcdp都是基于s集合

因为集合s最多5个元素,因此可以暴力全枚举,即 O ( 5 10 < 1 0 7 ) O(5^{10}<10^7) O(510<107)

#include <bits/stdc++.h>using namespace std;bool check(int64_t v, vector<int> &vis) {while (v > 0) {int r = (int)(v % 10);if (vis[r] == 0) return false;v /= 10;}return true;
}bool check2(int64_t v, int n) {int cnt = 0;while (v > 0) {v /= 10;cnt++;}return cnt == n;
}int n, k;
vector<int> s;
vector<int> vis(10);
vector<array<int, 2>> bs;vector<array<int, 2>> res;void dfs(int i, int av) {if (i == n) {for (auto &e: bs) {int64_t cv = (int64_t)av * e[1];int64_t dv = (int64_t)av * e[0];if (check(cv, vis) && check2(cv, n + 1) && check(dv, vis) && check2(dv, n + 1) && check(dv * 10 + cv, vis) && check2(dv * 10 + cv, n + 2)) {res.push_back({av, e[0] * 10 + e[1]});}}return;} for (int &v: s) {dfs(i + 1, av * 10 + v);}
}int main() {cin >> n >> k;for (int i = 0; i < k; i++) {int v;cin >> v;vis[v] = 1;s.push_back(v);}sort(s.begin(), s.end());for (auto &b1: s) {for (auto &b2: s) {bs.push_back({b1, b2});}}dfs(0, 0);if (res.empty()) {cout << "No Solution\n";} else {for (auto &e: res) {cout << e[0] << " " << e[1] << "\n";}}return 0;
}

RC-v4 实时中位线

分值: 30分

思路: 对顶堆

这是对顶堆的板子题,不过其值域被范围被限定100,其实是道值域统计题

#include <bits/stdc++.h>using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n;cin >> n;// 利用对顶堆来实现吧priority_queue<int, vector<int>, less<int>> pq1;priority_queue<int, vector<int>, greater<int>> pq2;for (int i = 0; i < n; i++) {int v;cin >> v;if (i % 2 == 0) {if (!pq2.empty() && pq2.top() < v) {pq1.push(pq2.top()); pq2.pop();pq2.push(v);} else {pq1.push(v);    }cout << pq1.top() << ".0" << '\n';} else {if (!pq1.empty() && pq1.top() > v) {pq2.push(pq1.top()); pq1.pop();pq1.push(v);} else {pq2.push(v);}cout << fixed << setprecision(1) <<  (pq1.top() + pq2.top()) / 2.0 << '\n';}}return 0;
}

写在最后

在这里插入图片描述

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

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

相关文章

15 C 语言字符类型详解:转义字符、格式化输出、字符类型本质、ASCII 码编程实战、最值宏汇总

1 字符类型概述 在 C 语言中&#xff0c;字符类型 char 用于表示单个字符&#xff0c;例如一个数字、一个字母或一个符号。 char 类型的字面量是用单引号括起来的单个字符&#xff0c;例如 A、5 或 #。 当需要表示多个字符组成的序列时&#xff0c;就涉及到了字符串。在 C 语言…

操作系统-锁/内存/中断/IO

文章目录 锁自旋锁互斥锁悲观锁和乐观锁 内存管理物理/虚拟内存页表段表虚拟内存布局写时复制copy on writebrk&#xff0c;mmap页面置换算法 中断中断分类中断流程 网络I/OI/O模型服务器处理并发请求 锁 自旋锁 自旋锁是一种基于忙等待&#xff08;Busy-Waiting&#xff09;…

割点与其例题

割点 定义&#xff1a; 若一个点在图中被去掉后&#xff0c;图的连通块个数增加&#xff0c;那么这个点就被称为“割点”。如下图所示红点。 定义说白了就是若去掉一个点&#xff0c;图被“断开”的点称为割点。 朴素算法&#xff1a; 枚举每个点 u。遍历图&#xff0c;如果…

图卷积神经网络(Graph Convolutional Network, GCN)

最近看论文看到了图卷积神经网络的内容&#xff0c;之前整理过图神经网络的内容&#xff0c;这里再补充一下&#xff0c;方便以后查阅。 图卷积神经网络&#xff08;Graph Convolutional Network, GCN&#xff09; 图卷积神经网络1. 什么是图卷积神经网络&#xff08;GCN&#…

安装win11硬盘分区MBR还是GPT_装win11系统分区及安装教程

最近有网友问我,装win11系统分区有什么要求装win11系统硬盘分区用mbr还是GPT&#xff1f;我们知道现在的引导模式有uefi和legacy两种引导模式&#xff0c;如果采用的是uefi引导模式&#xff0c;分区类型对应的就是gpt分区(guid)&#xff0c;如果引导模式采用的是legacy&#xf…

服务培训QDA 的安装调试方法,硬件模块的讲解和软件控制台使用及系统测试

#服务培训##质谱仪##软件控制##硬件模块# 以下是关于Waters QDa单杆液质质谱仪的安装调试、硬件模块讲解以及软件控制台使用培训的相关内容&#xff1a; 安装调试 场地准备&#xff1a;用户需要提前准备好实验室&#xff0c;确保实验室环境符合仪器的要求&#xff0c;如温度、…

在K8S集群中部署EFK日志收集

目录 引言环境准备安装自定义资源部署ElasticsearchMaster 节点与 Data 节点的区别生产优化建议安装好以后测试ES是否正常部署Fluentd测试filebeat是否正常推送日志部署Kibana获取账号密码&#xff0c;账号是&#xff1a;elastic集群测试 引言 系统版本为 Centos7.9内核版本为…

polarctf-web-[rce1]

考点&#xff1a; (1)RCE(exec函数) (2)空格绕过 (3)执行函数(exec函数) (4)闭合(ping命令闭合) 题目来源&#xff1a;Polarctf-web-[rce1] 解题&#xff1a; 这段代码实现了一个简单的 Ping 测试工具&#xff0c;用户可以通过表单提交一个 IP 地址&#xff0c;服务器会执…

【串流VR手势】Pico 4 Ultra Enterprise 在 SteamVR 企业串流中无法识别手势的问题排查与解决过程(Pico4UE串流手势问题)

写在前面的话 此前&#xff08;用Pico 4U&#xff09;接入了MRTK3&#xff0c;现项目落地需要部署&#xff0c;发现串流场景中&#xff0c;Pico4UE的企业串流无法正常识别手势。&#xff08;一体机方式部署使用无问题&#xff09; 花了半小时解决&#xff0c;怕忘&#xff0c;…

ES(Elasticsearch)的应用与代码示例

Elasticsearch应用与代码示例技术文章大纲 一、引言 Elasticsearch在现代化应用中的核心作用典型应用场景分析&#xff08;日志分析/全文检索/数据聚合&#xff09; 二、环境准备(前提条件) Elasticsearch 8.x集群部署要点IK中文分词插件配置指南Ingest Attachment插件安装…

临床决策支持系统的提示工程优化路径深度解析

引言 随着人工智能技术在医疗领域的迅猛发展,临床决策支持系统(CDSS)正经历从传统规则引擎向智能提示工程的范式转变。在这一背景下,如何构建既符合循证医学原则又能适应个体化医疗需求的CDSS成为医学人工智能领域的核心挑战。本报告深入剖析了临床决策支持系统中提示工程的…

火山RTC 8 SDK集成进项目中

一、SDK 集成预备工作 1、SDK下载 https://www.volcengine.com/docs/6348/75707 2、解压后 3、放在自己项目中的位置 1&#xff09;、include 2&#xff09;、lib 3)、dll 暂时&#xff0c;只需要VolcEngineRTC.dll RTCFFmpeg.dll openh264-4.dll&#xff0c; 放在intLive2…

OkHttp用法-Java调用http服务

特点&#xff1a;高性能&#xff0c;支持异步请求&#xff0c;连接池优化 官方文档&#xff1a;提供快速入门指南和高级功能&#xff08;如拦截器、连接池&#xff09;的详细说明&#xff0c;GitHub仓库包含丰富示例。 社区资源&#xff1a;中文教程丰富&#xff0c;GitHub高…

python中常用的参数以及命名规范

以下是 Python 中常见的命名规范、参数用法及在大型项目中常用的操作模式&#xff0c;供记录参考&#xff1a; 1. 命名规范&#xff08;Naming Conventions&#xff09; 前缀/形式含义示例_age单下划线&#xff1a;弱“私有”标记&#xff08;可访问但不建议外部使用&#xff…

第五十七篇 Java接口设计之道:从咖啡机到智能家居的编程哲学

目录 引言&#xff1a;生活中的接口无处不在一、咖啡机与基础接口&#xff1a;理解抽象契约1.1 咖啡制作的标准接口 二、智能家居与策略模式&#xff1a;灵活切换实现2.1 温度调节策略场景 三、物流系统与工厂模式&#xff1a;标准接口下的多样实现3.1 快递运输接口设计 四、健…

第二十六天打卡

全局变量 global_var 全局变量是定义在函数、类或者代码块外部的变量&#xff0c;它在整个程序文件内都能被访问。在代码里&#xff0c; global_var 就是一个全局变量&#xff0c;下面是相关代码片段&#xff1a; print("\n--- 变量作用域示例 ---") global_var …

联合查询

目录 1、笛卡尔积 2、联合查询 2.1、内连接 2.2、外连接 1、笛卡尔积 笛卡尔积&#xff1a; 笛卡尔积是让两个表通过排列组合的方式&#xff0c;得到的一个更大的表。笛卡尔积的列数&#xff0c;是这两个表的列数相加&#xff0c;笛卡尔积的行数&#xff0c;是这两个表的行…

【HTML5学习笔记2】html标签(下)

1表格标签 1.1表格作用 显示数据 1.2基本语法 <table><tr> 一行<td>单元格1</td></tr> </table> 1.3表头单元格标签 表头单元格会加粗并且居中 <table><tr> 一行<th>单元格1</th></tr> </table&g…

window 显示驱动开发-分页视频内存资源

与 Microsoft Windows 2000 显示驱动程序模型不同&#xff0c;Windows Vista 显示驱动程序模型允许创建比可用物理视频内存总量更多的视频内存资源&#xff0c;然后根据需要分页进出视频内存。 换句话说&#xff0c;并非所有视频内存资源都同时位于视频内存中。 GPU 的管道中可…

《C 语言指针高级指南:字符、数组、函数指针的进阶攻略》

目录 一. 字符指针变量 二. 数组指针变量 三. 二维数组传参 3.1 二维数组的本质 3.2 访问方式与地址计算 3.3 二维数组的传参方式 3.4 深入解析 *(*(arri)j) 与 arr[i][j] 的等价性 四. 函数指针变量 4.1 函数指针变量的创建 4.2 函数指针变量的使用 4.3 两段"…