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

news2025/5/18 1:35:23

前言

在这里插入图片描述


题解

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.coloradmin.cn/o/2378129.html

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

相关文章

git工具使用详细教程-------命令行和TortoiseGit图形化

下载 git下载地址&#xff1a;https://git-scm.com/downloads TortoiseGit&#xff08;图形化工具&#xff09;下载地址&#xff1a;https://tortoisegit.org/download/ 认识git结构 工作区&#xff1a;存放代码的地方 暂存区&#xff1a;临时存储&#xff0c;将工作区的代码…

Mysql新增

插入一个记录需要的时间由下列因素组成&#xff0c;其中的数字表示大约比例&#xff1a; 连接&#xff1a;(3)发送查询给服务器&#xff1a;(2)分析查询&#xff1a;(2)插入记录&#xff1a;&#xff08;1x记录大小&#xff09;插入索引&#xff1a;&#xff08;1x索引&#x…

AI Agent开发第64课-DIFY和企业现有系统结合实现高可配置的智能零售AI Agent(上)

开篇 我们之前花了将近10个篇章讲Dify的一些基础应用,包括在讲Dify之前我们讲到了几十个AI Agent的开发例子,我不知道大家发觉了没有,在AI Agent开发过程中我们经常会伴随着这样的一些问题: 需要经常改猫娘;需要经常改调用LLM的参数,甚至在一个流程中有3个节点,每个节点…

【嵌入式】记一次解决VScode+PlatformIO安装卡死的经历

PlatformIO 是开源的物联网开发生态系统。提供跨平台的代码构建器、集成开发环境&#xff08;IDE&#xff09;&#xff0c;兼容 Arduino&#xff0c;ESP8266和mbed等。 开源库地址&#xff1a;https://github.com/platformio 在 VScode 中配置 PlatformIO 插件&#xff0c;记录…

MySQL 事务(一)

文章目录 CURD不加控制&#xff0c;会有什么问题CURD满足什么属性&#xff0c;能解决上述问题&#xff1f;什么是事务为什么要有事务事务的版本支持了解事务的提交方式 事务常见操作方式研究并发场景事务的正常操作事务的非正常情况的案例结论事务操作的注意事项 CURD不加控制&…

【全解析】EN 18031标准下的 AUM 身份认证机制[下篇]

在上篇文章中&#xff0c;我们详细介绍了EN 18031标准中AUM身份认证机制的AUM - 1、AUM - 2和AUM - 3条款。今天&#xff0c;我们将继续深入探讨AUM - 4到AUM - 6的相关内容&#xff0c;进一步了解该标准如何保障无线电设备的身份认证安全。 一、AUM - 4&#xff1a;更改认证器…

彻底解决sublime text4无法打开install package界面安装插件问题

1. 说明 最新版的 sublime text4&#xff0c;不管是通过软件自带的命令安装的 package control 插件&#xff0c;还是从官网下载的 package control 插件&#xff0c;之后通过 CommandShiftP 打开面板&#xff0c;输入 Package Control&#xff0c;可能找不到 Package Control…

用户现场不支持路由映射,如何快速将安防监控EasyCVR视频汇聚平台映射到公网?

一、方案背景​ 随着数字化安防与智能交通管理发展&#xff0c;视频监控远程管理需求激增。EasyCVR作为专业视频融合平台&#xff0c;具备多协议接入等核心功能&#xff0c;是智能监控的重要工具。但实际部署中&#xff0c;当EasyCVR处于内网且路由器无法进行端口映射时&#…

C#实现访问远程硬盘(附源码)

在现实场景中&#xff0c;我们经常用到远程桌面功能&#xff0c;而在某些场景下&#xff0c;我们需要使用类似的远程硬盘功能&#xff0c;这样能非常方便地操作对方电脑磁盘的目录、以及传送文件。那么&#xff0c;这样的远程硬盘功能要怎么实现了&#xff1f; 这次我们将给出…

图片、音频、视频都能转?简鹿格式工厂了解一下

我们每天都会接触到各种各样的音视频和图片文件。无论是拍摄的照片、录制的视频&#xff0c;还是下载的音频资源&#xff0c;它们往往以不同的格式存在——有些适合分享&#xff0c;有些适合编辑&#xff0c;而有些则仅限特定设备或平台使用。格式不统一的问题&#xff0c;正在…

Qt—用SQLite实现简单的注册登录界面

1.实现目标 本次实现通过SQLite制作一个简易的登录窗口&#xff0c;当点击注册按钮时&#xff0c;登录窗口会消失&#xff0c;会出现一个新的注册界面&#xff1b;完成注册或退出注册时&#xff0c;注册窗口会消失&#xff0c;重新出现登录窗口。注册过的用户信息会出现在SQLi…

MySQL命令行导出数据(docker版本)

MySQL命令行导出数据(docker版本) 1、登录数据库 $mysql -h 10.1.1.143 -u root -p 2、用命令行从MySQL导出数据(无标题) #查看导出时可以存储的路径 mysql> SHOW VARIABLES LIKE secure_file_priv; ----------------------------------------- | Variable_name | Valu…

Python 3.13.3 安装教程

原文来自&#xff1a;Python 3.13.3 安装教程 | w3cschool笔记 &#xff08;请勿标记为付费&#xff01;&#xff01;&#xff01;&#xff09; Python 是一种广泛使用的编程语言&#xff0c;广泛应用于 Web 开发、科学计算、数据处理、人工智能等领域。Python 3.13.3 作为 P…

现代化水库运行管理矩阵平台如何建设?

政策背景 2023年8月24日&#xff0c;水利部发布的水利部关于加快构建现代化水库运行管理矩阵的指导意见中指出&#xff0c;在全面推进水库工程标准化管理的基础上&#xff0c;强化数字赋能&#xff0c;加快构建以推进全覆盖、全要素、全天候、全周期“四全”管理&#xff0c;完…

2025程序设计天梯赛补题报告

2025程序设计天梯赛补题报告 仅包含L1 L2 L1-6 这不是字符串题 题目描述 因为每年天梯赛字符串题的解答率都不尽如人意&#xff0c;因此出题组从几年前开始决定&#xff1a;每年的天梯赛的 15 分一定会有一道字符串题&#xff0c;另外一道则一定不是字符串题。 小特现在有…

SpringBoot3.4.5下Lombok的@Data注解不生效,解决方案

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java、嵌入式、鸿蒙、人工智能等,专注于程序员成长那点儿事,希望在成长的路上有你相伴&#xff01;君志所向,一往无前&#xff01; 1.问题 最近的项目是Python、Java、鸿蒙的来回交叉&#xff0c;再做的一个Java的项目…

如何在 Windows 上安装类似 Synaptic 的 Chocolatey GUI 包管理器

如果你正在寻找类似 Linux 中 APT 的 Windows 包管理器&#xff0c;那么没有什么比 Chocolatey 更好的了。它是 Windows 10 上可用的最佳包管理器之一&#xff0c;可以通过命令行界面安装所有流行的软件和工具。然而&#xff0c;这并不意味着如果你不喜欢命令行&#xff0c;你就…

Guided Filtering相关记录

一、背景介绍 以前折腾保边滤波时候&#xff0c;刷了一些Guided Filtering相关资料。这里主要是对它们做个算法效果复现和资料简单整理。 二、Guided Filtering 1、基本原理 原版Guided Filtering的提出&#xff0c;主要是为了改善双边滤波做保边平滑滤波器时候的梯度翻转伪影…

智能AI构建工地安全网:跌倒、抽搐、区域入侵多场景覆盖

智能AI在工地安全中的应用&#xff1a;从监测到救援的全流程实践 一、背景&#xff1a;高温作业下的工地安全挑战 随着夏季高温持续&#xff0c;工地户外作业环境面临严峻考验。工人因高温疲劳、脱水或突发疾病引发的行为异常&#xff08;如晕厥、抽搐、跌倒&#xff09;频发…

Spring+LangChain4j小智医疗项目

这里写目录标题 LangChain4j入门配置测试Ollama阿里云百炼平台AIService聊天记忆隔离聊天 MongoDB持久化存储Prompt*创建小智医疗助手Function Calling&#xff08;Tools&#xff09;实战小智医疗智能体 RAGToken分词器向量存储流式输出总结 LangChain4j入门 LangChain4j 是一…