【Java】2021 RoboCom 机器人开发者大赛-高职组(初赛)题解
7-1 机器人打招呼

机器人小白要来 RoboCom 参赛了,在赛场中遇到人要打个招呼。请你帮它设置好打招呼的这句话:“ni ye lai can jia RoboCom a?”。
输入格式:
本题没有输入。
输出格式:
在一行中输出 ni ye lai can jia RoboCom a?。
输入样例:
无
输出样例:
ni ye lai can jia RoboCom a?
Solution:
print("ni ye lai can jia RoboCom a?")
7-2 人脸识别

人脸识别是基于人的脸部特征信息进行身份识别的技术,包括人脸图像采集及检测、图像预处理、特征提取以及匹配与识别四大部分。本题请你为机器人警察实现一个非常简单的特征匹配算法,帮助查找罪犯:即给定数据库中存储的某罪犯的双眼间距、鼻梁长度、唇宽,然后与面前这个人的特征数据进行匹配,判断其是否该罪犯。
输入格式:
输入在第一行中给出罪犯的双眼间距 L0、鼻梁长度 L1、唇宽 L2、以及允许的误差范围 T。第二行中给出当前被检测的人的双眼间距 l0、鼻梁长度 l1、唇宽 l2。所有数字均为毫米为单位的长度,是不超过 100 的正整数,同行数字间以空格分隔。
输出格式:
首先在第一行中输出两个人脸特征的误差,格式为:
Diff = D0, D1, D2
其中 D0=L0−l0,D1=L1−l1,D2=L2−l2。如果三项误差的绝对值之和不超过 T,则在第二行输出 Yes,否则输出 No。
输入样例 1:
23 60 54 3
23 59 56
输出样例 1:
Diff = 0, 1, -2
Yes
输入样例 2:
23 60 54 3
24 59 56
输出样例 2:
Diff = -1, 1, -2
No
Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));String[] input = in.readLine().split(" ");int L0 = Integer.parseInt(input[0]);int L1 = Integer.parseInt(input[1]);int L2 = Integer.parseInt(input[2]);int T = Integer.parseInt(input[3]);input = in.readLine().split(" ");int l0 = Integer.parseInt(input[0]);int l1 = Integer.parseInt(input[1]);int l2 = Integer.parseInt(input[2]);int D0 = L0 - l0;int D1 = L1 - l1;int D2 = L2 - l2;System.out.printf("Diff = %d, %d, %d\n", D0, D1, D2);if (Math.abs(D0) + Math.abs(D1) + Math.abs(D2) <= T) {System.out.println("Yes");} else {System.out.println("No");}}
}
7-3 月份输出
本题要求你写一个程序帮助小朋友学习用英语描述月份。已知英文的 12 个月份为:
- 一月:January
- 二月:February
- 三月:March
- 四月:April
- 五月:May
- 六月:June
- 七月:July
- 八月:August
- 九月:September
- 十月:October
- 十一月:November
- 十二月:December
输入格式:
输入包括若干行,每一行里给出一个整数。
输出格式:
对每一行的输入,如果该整数在 1 到 12 之间,则在一行中输出这个数字对应的英文月份单词;否则输出 ? 并结束程序。题目保证程序会结束。
输入样例:
10
5
28
-1
输出样例:
October
May
?
Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(in.readLine());String[] m = {"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};while (true) {if (n > 12 || n < 1) {System.out.println("?");break;} else {System.out.println(m[n]);}n = Integer.parseInt(in.readLine());}}
}
7-4 字母串
英语老师要求学生按照如下规则写一串字母:
- 如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中下一个字母的大写;
- 如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中前一个字母的小写;
- 当然也可以什么都不写,就结束这个字母串。
例如 aAaABCDdcbBC 就是一个合法的字母串;而 dEFfeFGhI 就是非法的。注意 a 没有前一个字母, Z 也没有下一个字母。
现在面对全班学生交上来的作业,老师请你写个程序自动批改。
输入格式:
输入在第一行给出一个不超过 100 的正整数 N。随后 N 行,每行给出一位学生的作业,即仅由英文字母组成的非空字母串,长度不超过 2×106。
输出格式:
对每位学生的作业,如果正确就在一行中输出 Y,否则输出 N。
输入样例:
2
aAaABCDdcbBC
dEFfeFGhI
输出样例:
Y
N
Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(in.readLine());label:for (int i = 0; i < n; i++) {char[] chars = in.readLine().toCharArray();for (int j = 0; j < chars.length - 1; j++) {if (chars[j] >= 'A' && chars[j] <= 'Z') {if (chars[j] == 'Z' && chars[j + 1] != 'z') {System.out.println("N");continue label;}if (chars[j + 1] != (char) (chars[j] + 32) && chars[j + 1] != (char) (chars[j] + 1)) {System.out.println("N");continue label;}} else if (chars[j] >= 'a' && chars[j] <= 'z') {if (chars[j] == 'a' && chars[j + 1] != 'A') {System.out.println("N");continue label;}if (chars[j + 1] != (char) (chars[j] - 32) && chars[j + 1] != (char) (chars[j] - 1)) {System.out.println("N");continue label;}}}System.out.println("Y");}}
}
7-5 增一数
若一个正整数有 2n 个数位,后 n 位组成的数恰好比前 n 位组成的数大 1,则这个数称为增一数。例如 34、2526、233234 都是增一数。如果这个数还是某个数的平方,则称为平方增一数。你的任务就是判断任一给定正整数是否平方增一数。
输入格式:
输入在第一行中给出一个正整数 N(≤100),随后 N 行,每行给出一个不超过 231 的待判定的正整数。
输出格式:
对每个待判定的正整数,在一行中输出判定结果:如果是平方增一数,则输出 2;如果只是普通增一数,则输出 1;如果不是增一数,则输出 0。
输入样例:
3
528529
2324
5678
输出样例:
2
1
0
Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(in.readLine());for (int i = 0; i < n; i++) {String s = in.readLine();long length = s.length() / 2;long num = Long.parseLong(s);long x = (long) Math.pow(10, length);long left = num / x;long right = num % x;if (right - left == 1) {if (Double.toString(Math.sqrt(num)).matches("\\d+[.]0")) {System.out.println(2);} else {System.out.println(1);}} else {System.out.println(0);}}}
}
7-6 答题卡

新浪微博上有网友发文称:“朋友买了本玻尔 X 海森堡的物理大佬同人本,送了 300 道高数题。更绝的是,要做完题目按照答案涂答题卡,涂出一个二维码,扫描二维码才能看到特典,做错了就看不到了……”那张传说中的答题卡如下图所示:若答案为 4 位整数(位数不足时在前面补足 0),则前两位为横坐标,后两位为纵坐标。若一题有两小问,则第一问答案为横坐标,第二问答案为纵坐标。若答案为分数,则分子为横坐标,分母为纵坐标。

本题就请你根据答案帮助读者填写答题卡。
输入格式:
输入首先在第一行给出两个正整数:2<n≤90 为二维码的规模,即二维码是由 n×n 个小方块组成的大方块,左下角的小方块对应坐标 (1, 1),右上角的小方块对应坐标 (n, n);另一个 m(<n2)是答案的个数。最后 m 行,每行按以下格式之一给出一题的答案:或者是一个不超过 4 位的整数;或者是两小问的答案 答案1;答案2;或者是一个分数 分子/分母。这里保证每个答案都可以解析为一个二维码中的方块位置(即不存在超出二维码范围的坐标)。
输出格式:
输出 n 行,每行 n 个字符,空格用 . 表示,涂了答案的黑格用 # 表示。
输入样例:
5 7
205
3;2
4/5
101
3;3
4/3
5;1
输出样例:
.#.#.
.....
..##.
..#..
#...#
Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));String[] input = in.readLine().split(" ");int n = Integer.parseInt(input[0]);int m = Integer.parseInt(input[1]);int[][] code = new int[n + 1][n + 1];for (int i = 0; i < m; i++) {String s = in.readLine();if (s.matches("\\d+")) {s = String.format("%04d", Integer.parseInt(s));int length = s.length() / 2;int x = Integer.parseInt(s.substring(0, length));int y = Integer.parseInt(s.substring(length));code[n + 1 - y][x] = 1;} else {String[] x = s.split("\\W");code[n + 1 - Integer.parseInt(x[1])][Integer.parseInt(x[0])] = 1;}}for (int i = 1; i < code.length; i++) {for (int j = 1; j < code[i].length; j++) {if (code[i][j] == 1) {System.out.print("#");} else {System.out.print(".");}}System.out.println();}}
}
7-7 救救倒霉鬼
倒霉鬼抗着一大箱银行票据去邮寄,却不慎掉进了西湖…… 他奋力游上岸并且顺便抢救了一些票据。但还是有一些票据落到了西湖底必须补做…… 于是请你写程序帮帮倒霉鬼,给他列出来需要重新补做的票据有哪些?
输入格式:
输入首先给出全部一箱票据的信息:在第一行给出不超过 105 的正整数 N,随后 N 行,每行给出一张票据的编号。题目保证编号不重复。
随后是抢救回来的票据的信息,首先是一个小于 N 的非负整数 M,随后 M 行,每行给出一份抢救回来的票据的编号。题目保证编号存在。
编号为长度不超过 12 的、由英文字母和数字组成的字符串。
输出格式:
按字典序递减输出丢失的票据的编号,每个编号占一行。
输入样例:
5
A20190289
B20018372
A19873001
T27346900
B00247834
3
T27346900
A19873001
B20018372
输出样例:
B00247834
A20190289
Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(in.readLine());Set<String> tickets = new TreeSet<>(Comparator.reverseOrder());for (int i = 0; i < n; i++) {tickets.add(in.readLine());}int m = Integer.parseInt(in.readLine());Set<String> find = new HashSet<>();for (int i = 0; i < m; i++) {find.add(in.readLine());}tickets.removeAll(find);StringBuilder sb = new StringBuilder();for (String ticket : tickets) {sb.append(ticket).append("\n");}System.out.print(sb);}
}
相关文章:
【Java】2021 RoboCom 机器人开发者大赛-高职组(初赛)题解
7-1 机器人打招呼 机器人小白要来 RoboCom 参赛了,在赛场中遇到人要打个招呼。请你帮它设置好打招呼的这句话:“ni ye lai can jia RoboCom a?”。 输入格式: 本题没有输入。 输出格式: 在一行中输出 ni ye lai can jia Robo…...
汽车制造业上下游协作时 外发数据如何防泄露?
数据文件是制造业企业的核心竞争力,一旦发生数据外泄,就会给企业造成经济损失,严重的,可能会带来知识产权剽窃损害、名誉伤害等。汽车制造业,会涉及到重要的汽车设计图纸,像小米发送汽车设计图纸外泄事件并…...
H13-922题库 HCIP-GaussDB-OLAP V1.5
**H13-922 V1.5 GaussDB(DWS) OLAP题库 华为认证GaussDB OLAP数据库高级工程师HCIP-GaussDB-OLAP V1.0自2019年10月18日起,正式在中国区发布。当前版本V1.5 考试前提: 掌握基本的数据库基础知识、掌握数据仓库运维的基础知识、掌握基本Linux运维知识、…...
美团视觉GPU推理服务部署架构优化实战
🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~ἳ…...
什么是前端框架?怎么学习? - 易智编译EaseEditing
前端框架是一种用于开发Web应用程序界面的工具集合,它提供了一系列预定义的代码和结构,以简化开发过程并提高效率。 前端框架通常包括HTML、CSS和JavaScript的库和工具,用于构建交互式、动态和响应式的用户界面。 学习前端框架可以让您更高效…...
logstash 原理(含部署)
1、ES原理 原理 使⽤filebeat来上传⽇志数据,logstash进⾏⽇志收集与处理,elasticsearch作为⽇志存储与搜索引擎,最后使⽤kibana展现⽇志的可视化输出。所以不难发现,⽇志解析主要还 是logstash做的事情 从上图中可以看到&#x…...
CSS中的position属性有哪些值,并分别描述它们的作用。
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ static⭐ relative⭐ absolute⭐ fixed⭐ sticky⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那…...
视频联网报警厂家怎么找?
视频联网报警厂家怎么找?要找到联网报警设备厂家,可以按照以下步骤进行: 1. 在互联网上搜索:可以使用搜索引擎,如谷歌或百度,搜索关键词,如“联网报警设备厂家”、“安防设备厂家”等ÿ…...
配置文件优先级解读
目录 概述 同级目录application配置文件优先级 application 以及bootstrap 优先级 不同级目录配置文件优先级 外部配置加载顺序 概述 SpringBoot除了支持properties格式的配置文件,还支持另外两种格式的配置文件。三种配置文件格式分别如下: properties格式…...
在 React+Typescript 项目环境中创建并使用组件
上文 ReactTypescript清理项目环境 我们将自己创建的项目环境 好好清理了一下 下面 我们来看组件的创建 组件化在这种数据响应式开发中肯定是非常重要的。 我们现在src下创建一个文件夹 叫 components 就用他专门来处理组件业务 然后 我们在下面创建一个 hello.tsx 注意 是t…...
UNIAPP中开发企业微信小程序
概述 需求为使用uni-app开发企业微信小程序。希望可以借助现成的uni-app框架,快速开发。遇到的问题是uni-app引入jweixin-1.2.0.js提示异常: Reason: TypeError: Cannot read properties of undefined (reading ‘title’)。本文中描述了如何解决该问题,…...
NGINX负载均衡及LVS-DR负载均衡集群
目录 LVS-DR原理搭建过程nginx 负载均衡 LVS-DR原理 原理: 1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IPÿ…...
由于目标计算机积极拒绝,无法连接。 Could not connect to Redis at 127.0.0.1:6379
项目在启动时候报出redis连接异常 然后查看是redis 连接被计算机拒绝 解决方法 打开redis安装文件夹 先打开redis-servce.exe挂着,再打开redis-cli.exe 也不会弹出被拒接的问题了。而且此方法不用每次都去cmd里输入命令。...
电脑提示数据错误循环冗余检查怎么办?
有些时候,我们尝试在磁盘上创建分区或清理硬盘时,还可能会遇到这个问题:数据错误循环冗余检查。这是如何导致的呢?我们又该如何解决这个问题呢?下面我们就来了解一下。 导致冗余检查错误的原因有哪些? 数据…...
剑指offer62.圆圈中最后剩下的数字
这道题在算法课上的一个小故事上有一个类似的,就是一个军官打了败仗,带着他的几个兵逃到一个山洞,他们不想当俘虏想自杀,但是军官不想自杀但是又不好意思走,于是军官想了个办法,他们几个人围成一个圈&#…...
Python分享之 Spider
一、网络爬虫 网络爬虫又被称为网络蜘蛛,我们可以把互联网想象成一个蜘蛛网,每一个网站都是一个节点,我们可以使用一只蜘蛛去各个网页抓取我们想要的资源。举一个最简单的例子,你在百度和谷歌中输入‘Python,会有大量和…...
Golang项目中如何轻松实现私有仓库pkg包的引入
在企业内部创建一个公共的Golang模块工程可以帮助提高代码复用性和开发效率。本文将从如何创建一个公共的Golang工程开始,指导你一步步创建它、并引入到你的工程中。 1、公共模块规范 下面是一个简单的步骤指南来创建这样一个公共模块项目。 创建版本控制仓库&am…...
Python项目实战:基于napari的3D可视化(点云+slice)
文章目录 一、napari 简介二、napari 安装与更新三、napari【巨巨巨大的一个BUG】四、napari 使用指南4.1、菜单栏(File View Plugins Window Help)4.2、Window:layer list(参数详解)4.3、Window:layer…...
go的gin和gorm框架实现切换身份的接口
使用go的gin和gorm框架实现切换身份的接口,接收前端发送的JSON对象,查询数据库并更新,返回前端信息 接收前端发来的JSON对象,包含由openid和登陆状态组成的一个string和要切换的身份码int型 后端接收后判断要切换的身份是否低于该…...
仓库库存管理难点在哪?有哪些仓库库存管理软件?
仓库库存管理常见的难点有:库存数据混乱、库存成本较高、库存积压严重等问题 使用仓库管理软件,企业可以更好地管理库存、优化供应链、提高操作效率,并基于准确的数据进行决策和规划,从而解决许多仓库库存管理中的难题。 一、仓库…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
