当前位置: 首页 > 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对应的逆序迭代器来实现。


写在最后

在这里插入图片描述

相关文章:

  • 《Pytorch深度学习实践》ch8-多分类
  • 深度解码:我如何用“结构进化型交互学习方法”与AI共舞,从学习小白到构建复杂认知体系
  • rust或tauri项目执行命令的时候,cmd窗口也会弹出显示解决方法
  • 【MATLAB去噪算法】基于CEEMDAN联合小波阈值去噪算法(第四期)
  • 分布式光纤传感(DAS)技术应用解析:从原理到落地场景
  • NoSQl之Redis部署
  • 探秘实验室铁地板:科技与安全的完美结合
  • StoreView SQL,让数据分析不受地域限制
  • 在使用一些不用驱动大电流的设备就可以用stm32的自己的上下拉但是本身上下拉不就是给iicspi这些他通信给信号的吗中怎么还跟驱动能力扯上了有什么场景嘛
  • UI学习—cell的复用和自定义cell
  • 阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽
  • 20250605在微星X99主板中配置WIN10和ubuntu22.04.6双系统启动的引导设置
  • scDown:单细胞RNA测序下游分析管道-文献精读140
  • Dify源码教程:账户和密码传递分析
  • 破局新能源消纳难题!安科瑞智慧能源平台助力10KV配电网重构未来
  • 【2025年】解决Burpsuite抓不到https包的问题
  • 从理论崩塌到新路径:捷克科学院APL Photonics论文重构涡旋光技术边界
  • 代码中文抽取工具并替换工具(以ts为例)
  • 4.3 HarmonyOS NEXT AI驱动的交互创新:智能助手、实时语音与AR/MR开发实战
  • MySQL间隙锁入手,拿下间隙锁面试与实操
  • 有什么网站是做名片印刷的/上海优化网站公司哪家好
  • 外贸自助建站/外贸网站建站平台
  • 中山低价网站建设/中国人民银行网站
  • 网站用户体验比较/电商网站设计
  • 做网站fjfzwl/郑州seo外包顾问
  • 厦门百度整站优化服务/淘宝指数网址