2024年睿抗机器人开发者大赛(RAICOM)国赛题解
目录
RC-u1 大家一起查作弊 分数 15
RC-u2 谁进线下了?II 分数 20
RC-u3 势均力敌 分数 25
RC-u4 City 不 City 分数 30
RC-u5 贪心消消乐 分数 30
RC-u1 大家一起查作弊 分数 15
简单模拟题,对于多行读入使用while(getline(cin,s))即可
// 数学公式要变形
// 莫急莫急先读题
#include <bits/stdc++.h>
using namespace std;
#define lowbit(x) (x&(-x))
#define endl "\n"
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixed<<setprecision(x)// c++ 保留小数
#define den(a) cout << #a << " = " << a << "\n";
#define deg(a) cout << #a << " = " << a << " ";
typedef long long LL;
typedef pair<int, int> PII;
const int N=1000010,M=1010,INF=0x3f3f3f3f,mod=1e9+7;
const double pai=acos(-1.0);// pai
map<int,int> mp;
int t,n,m;//是不是关键字
bool check(char x){if('A'<=x and x<='Z') return true;if('a'<=x and x<='z') return true;if(isdigit(x)) return true;return false;
}
//可疑分数计算
int get(string s){int big = 0, small = 0, sz = 0;for(auto&x:s){if('A'<=x and x<='Z') big = 1;if('a'<=x and x<='z') small = 1;if(isdigit(x)) sz = 1;}if(big and small and sz) return 5;if(sz and (big or small)) return 3;if(big and small) return 1;return 0;
}
void solve(){int sum = 0,len = 0, cnt = 0;string s;while(getline(cin,s)){string now;for(auto&v:s)if(check(v)) now += v;else{if(!now.empty()){sum += get(now);len += now.size();cnt++;}now.clear();}// 可能最后还有东西if(!now.empty()){sum += get(now);len += now.size();cnt++;}}cout << sum << endl;cout << len << ' ' << cnt << endl;return ;
}
signed main ()
{ios// 不能有printf puts scanfint t=1;while(t--){solve();}
}
RC-u2 谁进线下了?II 分数 20
简单模拟,按照题目意思模拟即可
// 数学公式要变形
// 莫急莫急先读题
#include <bits/stdc++.h>
using namespace std;
#define lowbit(x) (x&(-x))
#define endl "\n"
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixed<<setprecision(x)// c++ 保留小数
#define den(a) cout << #a << " = " << a << "\n";
#define deg(a) cout << #a << " = " << a << " ";
typedef long long LL;
typedef pair<int, int> PII;
const int N=1000010,M=1010,INF=0x3f3f3f3f,mod=1e9+7;
const double pai=acos(-1.0);// pai
map<int,int> mp;
int t,n,m;
int d[30] = {0,25,21,18,16};
bool st[N];
int w[N];struct code{int id,x;bool operator<(const code&t)const{if(x==t.x) return id<t.id;return x>t.x;}
}e[N];void solve(){for(int i=5;i<=20;i++) d[i] = 20 - i;cin>>n;while(n--){m = 20;while(m--){int x,r; cin>>x>>r;w[x] += d[r];st[x] = true;}} n = 30;for(int i=1;i<=n;i++) e[i]={i,w[i]};sort(e+1,e+1+n);for(int i=1;i<=n;i++){auto [id,x] = e[i];if(!st[id]) continue;cout << id << ' ' << x << endl;}cout << endl;return ;
}
signed main ()
{ios// 不能有printf puts scanfint t=1;while(t--){solve();}
}
RC-u3 势均力敌 分数 25
按照题目直接暴力枚举所有情况使用全排列 + 二进制枚举
时间复杂度大致如下 同时不会跑满所以可以通过
// 数学公式要变形
// 莫急莫急先读题
#include <bits/stdc++.h>
using namespace std;
#define lowbit(x) (x&(-x))
#define endl "\n"
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixed<<setprecision(x)// c++ 保留小数
#define den(a) cout << #a << " = " << a << "\n";
#define deg(a) cout << #a << " = " << a << " ";
typedef long long LL;
typedef pair<int, int> PII;
const int N=1000010,M=1010,INF=0x3f3f3f3f,mod=1e9+7;
const double pai=acos(-1.0);// pai
map<int,int> mp;
int t,n,m;
int a[N],p[N];void solve(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];p[i] = i;}vector<int> v;int sum = 0;do{int ans = 0;for(int i=1;i<=n;i++) ans = ans * 10 + a[p[i]];v.push_back(ans);sum += ans;}while(next_permutation(p+1,p+1+n));m = v.size();for(int i=0;i<(1<<m);i++){if(__builtin_popcount(i)!=m/2) continue;int now = 0;vector<int> ans;for(int j=0;j<m;j++){if(i>>j&1){ans.push_back(v[j]);now += v[j]; }}if(now==sum/2){for(auto&v:ans) cout << v << endl;cout << endl;return ;}}return ;
}
signed main ()
{ios// 不能有printf puts scanfint t=1;while(t--){solve();}
}
RC-u4 City 不 City 分数 30
典型的分层图,一个城市有多个状态,跑一遍djikstra即可,注意本题是计算途经城市的hot值,所以初始状态是 d[s][0] = 0,在可以抵达t的时候来判断即可
// 数学公式要变形
// 莫急莫急先读题
#include <bits/stdc++.h>
using namespace std;
#define lowbit(x) (x&(-x))
#define endl "\n"
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixed<<setprecision(x)// c++ 保留小数
#define den(a) cout << #a << " = " << a << "\n";
#define deg(a) cout << #a << " = " << a << " ";
typedef long long LL;
typedef pair<int, int> PII;
typedef array<int,3> ar3;
const int N=1000010,M=1010,INF=0x3f3f3f3f,mod=1e9+7;
const double pai=acos(-1.0);// pai
map<int,int> mp;
int n,m,s,t;
int h[M];
vector<PII> g[M];
int d[M][110];void solve(){cin>>n>>m>>s>>t;for(int i=1;i<=n;i++) cin>>h[i];while(m--){int a,b,c; cin>>a>>b>>c;g[a].push_back({b,c});g[b].push_back({a,c});}int ans = 2e9,pos = -1;auto dijkstra = [&](){memset(d,0x3f,sizeof d);priority_queue<ar3,vector<ar3>,greater<ar3>> q;d[s][0] = 0, q.push({0,s,0});while(!q.empty()){auto [cost,u,hot] = q.top(); q.pop();for(auto&[v,w]:g[u]){int ne = max(hot,h[v]);if(v==t){if(cost+w<ans){ans = cost + w;pos = hot;}else if(cost+w==ans and hot<pos){pos = hot;}}if(d[v][ne]>cost+w){d[v][ne] = cost + w;q.push({cost+w,v,ne});}}}};dijkstra();if(pos==-1) cout << "Impossible" << endl;else cout << ans << ' ' << pos << endl;return ;
}
signed main ()
{ios// 不能有printf puts scanfint t=1;while(t--){solve();}
}
RC-u5 贪心消消乐 分数 30
贪心模拟,每次都暴力的找到可以选取的最大矩阵即可,然后模拟下降,没有找到正解,这里贴一下别人的x*(n^4)比较暴力的做法,赛时通过了
#include <bits/stdc++.h>using namespace std;
using i64 = long long;constexpr int inf = 5E6;void solve() {int n;cin >> n;vector<vector<int>> g(n, vector<int>(n, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cin >> g[i][j];if (g[i][j] == 0) {g[i][j] = -inf;}}}vector<vector<i64>> sum(n + 1, vector<i64>(n + 1, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {sum[i + 1][j + 1] = sum[i + 1][j] + sum[i][j + 1] - sum[i][j] + g[i][j];}}i64 tot = 0;while (1) {i64 hi = 0;int a, b, c, d;for (int x1 = 0; x1 < n; x1++) {for (int y1 = 0; y1 < n; y1++) {for (int x2 = x1; x2 < n; x2++) {for (int y2 = y1; y2 < n; y2++) {if (g[y2][x2] == -inf) {break;}i64 cur = sum[y2 + 1][x2 + 1] - sum[y2 + 1][x1] - sum[y1][x2 + 1] + sum[y1][x1];if (cur > hi) {hi = cur;a = x1;b = y1;c = x2;d = y2;}if (cur < 0) {break;}}}}}if (hi <= 0) {break;}tot += hi;cout << "(" << a + 1 << ", " << b + 1 << ") (" << c + 1 << ", " << d + 1 << ") " << hi << "\n";int o = d - b + 1;for (int x = a; x <= c; x++) {for (int y = d; y >= 0; y--) {if (y >= o) {g[y][x] = g[y - o][x];} else {g[y][x] = -inf;}}}for (int i = 0; i <= n; i++) {fill(sum[i].begin(), sum[i].end(), 0);}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {sum[i + 1][j + 1] = sum[i + 1][j] + sum[i][j + 1] - sum[i][j] + g[i][j];}}}cout << tot << "\n";
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int T = 1;
// cin >> T;while (T--) {solve();}return 0;
}
相关文章:
2024年睿抗机器人开发者大赛(RAICOM)国赛题解
目录 RC-u1 大家一起查作弊 分数 15 RC-u2 谁进线下了?II 分数 20 RC-u3 势均力敌 分数 25 RC-u4 City 不 City 分数 30 RC-u5 贪心消消乐 分数 30 RC-u1 大家一起查作弊 分数 15 简单模拟题,对于多行读入使用while(getline(cin…...
声明式UI语法
一、ArkTS的基本组成 Entry // 装饰器 Component // 装饰器 struct Hello { // 自定义组件State myText: string World;build() { // UI描述Column() { // 系统组件Text(Hello ${this.myText}).fontSize(50)Divider()Button(Click me).onClick(() > { // 事件方法t…...
JDBC连接数和1521连接数之间的区别和联系(Java Database Connectivity)
JDBC(Java Database Connectivity)连接数和1521连接数之间的区别和联系如下: 区别 概念不同: JDBC连接数:指通过JDBC技术建立的数据库连接数。JDBC是Java中的一套API,用于连接和操作关系数据库。JDBC连接数…...
Leetcode - 136双周赛
目录 一,3238. 求出胜利玩家的数目 二,3239. 最少翻转次数使二进制矩阵回文 I 三,3240. 最少翻转次数使二进制矩阵回文 II 四,3241. 标记所有节点需要的时间 一,3238. 求出胜利玩家的数目 本题直接暴力求解&#x…...
SQLite ORDER BY 语句
SQLite ORDER BY 语句 SQLite 的 ORDER BY 语句用于对查询结果进行排序。排序可以是升序(ASC)或降序(DESC)。默认情况下,如果不指定排序方式,ORDER BY 会以升序对结果进行排序。 语法 SQLite ORDER BY 语…...
MTK Android12 系统中应用加载 .so 文件的问题分析
在本篇博客中,我将详细总结在 Android 12 系统上进行的几个实验,包括如何加载自定义 JAR 文件、如何解压和确认 .so 文件,以及如何验证系统报错提示。本文将介绍使用 PathClassLoader 和 DexClassLoader 动态加载类的实验,分析系统报错信息,并最终得出结论。 推荐:《Andr…...
bpmn简单使用(制作流程图)
1、先下载依赖,下面是我下载的版本 "bpmn-io/properties-panel": "^3.23.0", "bpmn-js": "^17.9.1", "bpmn-js-properties-panel": "^5.6.1", "camunda-bpmn-moddle": "^7.0.1",…...
【算法模板】算竞技巧:Python对拍数据生成
在计算机编程竞赛中,对拍(Testlib)是一种验证程序正确性的方法。它通常用于检查一个程序的输出是否与另一个程序的输出一致,以确保程序的正确性。 对拍程序 【算法模板】算竞技巧:对拍全解_算法竞赛对拍-CSDN博客 #i…...
计算机基本理论与程序运行原理概述
目录 计算机的基本表示方法 计算机的组成 程序运行的原理 指令执行的流水线 编译原理 个人理解 面试题总结 计算机的基本表示方法 计算机系统使用高、低电平来表示逻辑1和0。数据在计算机中的存储、传输和处理均以二进制形式进行。数据通过总线作为电信号进行传输&…...
SpringBoot中的server.context-path
目录 一、问题引入 二、代码片段展示 2.1.接口层 2.2.application.properties 三、问题分析 3.1.server.context-path 作用 3.2.正确展示 四、HTTP请求响应码简介 4.1.响应码参考来源 4.2.源码示例 4.2.1.源码总述 4.2.2.正常情况——2XX: generally "OK&…...
AI绘画绘画 Stable Diffusion ,从零开始轻松变现,AI绘画副业创收指南,一天一个AI帮你赚钱小技巧!
大家好,我是灵魂画师向阳 通过长达几个月的AI绘画Stable Diffusion 系统教程,相信大家已经对AI绘画有了一个大概的认知。最近就有很多粉丝总是问我,AI绘画学会后如何进行变现,或者是做副业呢? 那今天我就分享一些目前…...
阿里云镜像站,提供了各种第三方镜像地址
阿里云提供了各项镜像缓存地址,对于很多国外服务的地址,通过阿里云缓存的地址去下载,速度会非常快。 如下,打开阿里云官方网站: 进入“镜像站”,如下图所示: 有我们常用的 npm、maven、操作系统…...
stm32入门学习11-硬件I2C和MPU
(一)I2C硬件电路 stm32内部有I2C的硬件电路,我们可以使用stm32的标准库函数来实现I2C,这可以为我们减少对软件资源的占用 I2C硬件电路常用的标准库函数 void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct); /…...
如何在C++、PHP、GO中使用AI生成PPT API接口
在当今快节奏的商业环境中,演示文稿的制作不仅需要快速,还需要具有吸引力和专业性。AI生成PPT API 服务提供了一种创新的解决方案,能够根据用户提供的内容自动生成演示文稿,极大地提高了效率和质量。本文将详细介绍AI生成PPT的优势…...
力扣面试150 逆波兰表达式求值 栈 模拟栈
Problem: 150. 逆波兰表达式求值 👨🏫 参考题解 class Solution {//纯数组模拟栈实现(推荐) 3 ms 36 MBpublic static int evalRPN(String[] tokens) {int[] numStack new int[tokens.length / 2 1];int index 0;for (String s : tokens) {swit…...
动手学深度学习V2每日笔记(深度卷积神经网络AlexNet)
本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1h54y1L7oe/spm_id_from333.788.recommend_more_video.0&vd_sourcec7bfc6ce0ea0cbe43aa288ba2713e56d 文档教程 https://zh-v2.d2l.ai/ 本文的主要内容对沐神提供的代码中个人不太理解的内容进行笔记记录&…...
室内定位:紧耦合的学习惯性里程 (TLIO)
a### TLIO论文解读:紧耦合的学习惯性测程 (TLIO) 在惯性测量单元 (IMU) 领域,如何在短时间内精确地估计位置和姿态一直是一个挑战。最近,论文《TLIO: Tight Learned Inertial Odometry》提出了一种创新的方法,通过将深度学习与扩展卡尔曼滤波器 (EKF) 紧密结合,来解决这一…...
【面试之算法篇】寻找二叉树中两个节点的最低公共祖先
题目 给定一个树的根节点root和两个子节点a,b,返回二叉树中两个节点的最低公共祖先。二叉树每个节点的值都是不同的整数 10060 12040 null 4 74和7的最低公共祖先是120,60和40的最低公共祖先是60 思路 两个节点的祖先会有多个,只有是祖先的节点才有可能会是最低公共…...
使用Unity开发编辑系统时复制物体的一些细节问题
首先是复制一个GameObject时组件中的变量内容的复制问题,这个在Unity复制对象时让私有变量也被复制的简单方法这篇博客里面做了说明,但是其实还有一个问题,就是有些时候需要被复制的物体在刚创建出来的时候需要自动执行一些操作,这…...
【C++】模版初阶+STL简介
🚀个人主页:奋斗的小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、函数模版💥1.1 函数模板概念💥1.2 函数模板格式💥1…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
河北对口计算机高考MySQL笔记(完结版)(2026高考)持续更新~~~~
MySQL 基础概念 数据(Data):文本,数字,图片,视频,音频等多种表现形式,能够被计算机存储和处理。 **数据库(Data Base—简称DB):**存储数据的仓库…...
