当前位置: 首页 > news >正文

2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家


前言

在这里插入图片描述


题解

2021 RoboCom 世界机器人开发者大赛-高职组(初赛。

整体比较基础,但是7-5 增一数这题数据有点小坑。

在这里插入图片描述

7-1 机器人打招呼

分值: 5分
hello world系列

#include <bits/stdc++.h>using namespace std;int main() {cout << "ni ye lai can jia RoboCom a?\n";return 0;
}

7-2 人脸识别

分值: 10分

模拟即可

在这里插入图片描述

#include <bits/stdc++.h>using namespace std;int main() {int arr[3], brr[3];for (int i = 0; i < 3; i++) cin >> arr[i];int T; cin >> T;for (int i = 0; i < 3; i++) cin >> brr[i];cout << "Diff = ";int diff = 0;for (int i = 0; i < 3; i++) {if (i > 0) cout << ", ";cout << arr[i] - brr[i];diff += abs(arr[i] - brr[i]);}cout << "\n" << (diff <= T ? "Yes" : "No") << "\n";return 0;
}

7-3 月份输出

分值: 10分

打表的技巧


#include <bits/stdc++.h>using namespace std;const char *str[] = {"January","February","March","April","May","June","July","August","September","October","November","December"
};int main() {int v;while (cin >> v && v >= 1 && v <= 12) {cout << str[v - 1] << "\n";}cout << "?\n";return 0;
}

7-4 字母串

分值: 15分

模拟,字符串的题,喜欢考察转换(大小写字母,前后转)


#include <bits/stdc++.h>using namespace std;bool check(string &s) {int n = s.length();for (int i = 0;i < n - 1; i++) {char ch = s[i], nch = s[i + 1];if (ch >= 'a' && ch <= 'z') {if (nch != (ch - 'a' + 'A') && ch != nch + 1) {return false;}} else {if (nch != (ch - 'A' + 'a') && ch != nch - 1) {return false;}}}return true;
}int main() {int t;cin >> t;while (t-- > 0) {string s;cin >> s;cout << (check(s) ? "Y" : "N") << "\n";}return 0;
}

7-5 增一数

分值: 15分

难得的数论题

如何求解某个数是否为平方数

  1. sqrt求解,可以用库函数sqrt,也可以二分逼近,然后在平方check
  2. 因子拆解,时间复杂度为 O ( n ) O(\sqrt n) O(n )

需要注意的是:

这题测试数据,存在多余的前置0,需要去掉,不然会少一分。

#include <bits/stdc++.h>using namespace std;// 因子拆解
bool check(int64_t v) {for (int i = 2; i <= v / i; i++) {if (v % i == 0) {int cnt = 0;while (v % i == 0) {v /= i;cnt++;}if (cnt % 2 == 1) return false;}}if (v > 1) return false;return true;
}int main() {int t;cin >> t;while(t-- > 0) {string v; cin >> v;// 存在特殊的前置0,需要过滤掉while (v.length() > 0 && v[0] == '0') {v = v.substr(1);}int n = v.length();if (n % 2==1) {cout << 0 << "\n";continue;}int a1 = stoi(v.substr(0, n / 2));int a2 = stoi(v.substr(n/2));if (a1 + 1 == a2) {int u = stoi(v);// 库函数 平方根int r = (int)sqrt(u);// if (check(u)) {if (r * r == u) {cout << 2 << "\n";} else {cout << 1 << "\n";}} else {cout << 0 << "\n";}}return 0;
}

7-6 答题卡

分值: 20分

模拟+解析表达式

需要注意坐标:
左下是 ( 1 , 1 ) , 右上是 ( n , n ) 左下是(1,1), 右上是(n, n) 左下是(1,1),右上是(n,n)
在这里插入图片描述


#include <bits/stdc++.h>using namespace std;int main() {int n, m;cin >> n >> m;vector<string> g(n);string s;for (int i = 0; i < n; i++) {s += '.';}for (int i = 0; i < n; i++) g[i] = s;for (int i = 0; i < m; i++) {string s; cin >> s;if (s.find(';') != string::npos) {int p = s.find(';');int x = stoi(s.substr(0, p));int y = stoi(s.substr(p + 1));g[n - y][x - 1] = '#';} else if (s.find("/") != string::npos) {int p = s.find("/");int x = stoi(s.substr(0, p));int y = stoi(s.substr(p + 1));g[n - y][x - 1] = '#';} else {while (s.length() < 4) {s = "0" + s;}int x = stoi(s.substr(0, 2));int y = stoi(s.substr(2));g[n - y][x - 1] = '#';}}for (int i = 0; i < n; i++) cout << g[i] << "\n";return 0;
}

7-7 救救倒霉鬼

分值: 25分

这题反而简单,集合的差集

#include <bits/stdc++.h>using namespace std;int main() {int n;set<string> st;cin >> n;for (int i = 0; i < n;i++) {string s; cin >> s;st.insert(s);}int m; cin >> m;for (int i = 0; i < m; i++) {string s; cin >> s;st.erase(s);}auto iter = st.rbegin();while (iter != st.rend()) {cout << *iter << "\n";iter++;}return 0;
}

set的逆序遍历,可以借助rbegin和rend对应的逆序迭代器来实现。


写在最后

在这里插入图片描述

http://www.lqws.cn/news/165439.html

相关文章:

  • Linux Core 文件查看和调试
  • 第七十四篇 高并发场景下的Java并发容器:用生活案例讲透技术原理
  • 用 NGINX 构建高效 SMTP 代理`ngx_mail_smtp_module`
  • 深度学习N2周:构建词典
  • 板凳-------Mysql cookbook学习 (十)
  • ReLU 激活函数:重大缺陷一去不复返!
  • reverse笔记
  • 目标检测实战:让AI“看见“并定位物体(superior哥AI系列第11期)
  • Web后端基础(Maven基础)
  • 8天Python从入门到精通【itheima】-69~70(字符串的常见定义和操作+案例练习)
  • 从Copilot到Agent,AI Coding是如何进化的?
  • 2025爱分析·银行数字化应用实践报告|爱分析报告
  • [闭源saas选项]Pinecone:为向量数据库而生的实时语义搜索引擎
  • 关于智能体API参考接口
  • SpringBoot自动化部署实战技术文章大纲
  • 前端使用 preview 插件预览docx文件
  • 【cmder】--- Windows 下 cmder 经典常用快捷键 显著提高效率
  • python打卡day45
  • 如何实现本地mqtt服务器和云端服务器同步?
  • Spring @Scheduled vs XXL-JOB vs DolphinScheduler vs Airflow:任务调度框架全景对比
  • DeepSeek私有化部署的理性抉择:谁需要?谁不必?
  • 408第一季 - 408内容概述
  • 【Linux基础知识系列】第十一篇-Linux系统安全
  • 安科瑞防逆流方案落地内蒙古中高绿能光伏项目,筑牢北疆绿电安全防线
  • 企业级AI迈入黄金时代,企业该如何向AI“蝶变”?
  • 摄像机ISP处理流程
  • COMSOL学习笔记-静电场仿真
  • 【强化学习】——03 Model-Free RL之基于价值的强化学习
  • 软件测试基础知识总结
  • RMSE可以融合均值与标准差