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

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

7-1 机器人打招呼

robot.JPG

机器人小白要来 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 人脸识别

face.JPG

人脸识别是基于人的脸部特征信息进行身份识别的技术,包括人脸图像采集及检测、图像预处理、特征提取以及匹配与识别四大部分。本题请你为机器人警察实现一个非常简单的特征匹配算法,帮助查找罪犯:即给定数据库中存储的某罪犯的双眼间距、鼻梁长度、唇宽,然后与面前这个人的特征数据进行匹配,判断其是否该罪犯。

输入格式:

输入在第一行中给出罪犯的双眼间距 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 答题卡

post.JPG

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

card.jpg

本题就请你根据答案帮助读者填写答题卡。

输入格式:

输入首先在第一行给出两个正整数: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 参赛了&#xff0c;在赛场中遇到人要打个招呼。请你帮它设置好打招呼的这句话&#xff1a;“ni ye lai can jia RoboCom a?”。 输入格式&#xff1a; 本题没有输入。 输出格式&#xff1a; 在一行中输出 ni ye lai can jia Robo…...

汽车制造业上下游协作时 外发数据如何防泄露?

数据文件是制造业企业的核心竞争力&#xff0c;一旦发生数据外泄&#xff0c;就会给企业造成经济损失&#xff0c;严重的&#xff0c;可能会带来知识产权剽窃损害、名誉伤害等。汽车制造业&#xff0c;会涉及到重要的汽车设计图纸&#xff0c;像小米发送汽车设计图纸外泄事件并…...

H13-922题库 HCIP-GaussDB-OLAP V1.5

**H13-922 V1.5 GaussDB(DWS) OLAP题库 华为认证GaussDB OLAP数据库高级工程师HCIP-GaussDB-OLAP V1.0自2019年10月18日起&#xff0c;正式在中国区发布。当前版本V1.5 考试前提&#xff1a; 掌握基本的数据库基础知识、掌握数据仓库运维的基础知识、掌握基本Linux运维知识、…...

美团视觉GPU推理服务部署架构优化实战

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…...

什么是前端框架?怎么学习? - 易智编译EaseEditing

前端框架是一种用于开发Web应用程序界面的工具集合&#xff0c;它提供了一系列预定义的代码和结构&#xff0c;以简化开发过程并提高效率。 前端框架通常包括HTML、CSS和JavaScript的库和工具&#xff0c;用于构建交互式、动态和响应式的用户界面。 学习前端框架可以让您更高效…...

logstash 原理(含部署)

1、ES原理 原理 使⽤filebeat来上传⽇志数据&#xff0c;logstash进⾏⽇志收集与处理&#xff0c;elasticsearch作为⽇志存储与搜索引擎&#xff0c;最后使⽤kibana展现⽇志的可视化输出。所以不难发现&#xff0c;⽇志解析主要还 是logstash做的事情 从上图中可以看到&#x…...

CSS中的position属性有哪些值,并分别描述它们的作用。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ static⭐ relative⭐ absolute⭐ fixed⭐ sticky⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那…...

视频联网报警厂家怎么找?

视频联网报警厂家怎么找&#xff1f;要找到联网报警设备厂家&#xff0c;可以按照以下步骤进行&#xff1a; 1. 在互联网上搜索&#xff1a;可以使用搜索引擎&#xff0c;如谷歌或百度&#xff0c;搜索关键词&#xff0c;如“联网报警设备厂家”、“安防设备厂家”等&#xff…...

配置文件优先级解读

目录 概述 同级目录application配置文件优先级 application 以及bootstrap 优先级 不同级目录配置文件优先级 外部配置加载顺序 概述 SpringBoot除了支持properties格式的配置文件&#xff0c;还支持另外两种格式的配置文件。三种配置文件格式分别如下: properties格式…...

在 React+Typescript 项目环境中创建并使用组件

上文 ReactTypescript清理项目环境 我们将自己创建的项目环境 好好清理了一下 下面 我们来看组件的创建 组件化在这种数据响应式开发中肯定是非常重要的。 我们现在src下创建一个文件夹 叫 components 就用他专门来处理组件业务 然后 我们在下面创建一个 hello.tsx 注意 是t…...

UNIAPP中开发企业微信小程序

概述 需求为使用uni-app开发企业微信小程序。希望可以借助现成的uni-app框架&#xff0c;快速开发。遇到的问题是uni-app引入jweixin-1.2.0.js提示异常: Reason: TypeError: Cannot read properties of undefined (reading ‘title’)。本文中描述了如何解决该问题&#xff0c…...

NGINX负载均衡及LVS-DR负载均衡集群

目录 LVS-DR原理搭建过程nginx 负载均衡 LVS-DR原理 原理&#xff1a; 1. 当用户向负载均衡调度器&#xff08;Director Server&#xff09;发起请求&#xff0c;调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求&#xff0c;判断目标IP确定是本机IP&#xff…...

由于目标计算机积极拒绝,无法连接。 Could not connect to Redis at 127.0.0.1:6379

项目在启动时候报出redis连接异常 然后查看是redis 连接被计算机拒绝 解决方法 打开redis安装文件夹 先打开redis-servce.exe挂着&#xff0c;再打开redis-cli.exe 也不会弹出被拒接的问题了。而且此方法不用每次都去cmd里输入命令。...

电脑提示数据错误循环冗余检查怎么办?

有些时候&#xff0c;我们尝试在磁盘上创建分区或清理硬盘时&#xff0c;还可能会遇到这个问题&#xff1a;数据错误循环冗余检查。这是如何导致的呢&#xff1f;我们又该如何解决这个问题呢&#xff1f;下面我们就来了解一下。 导致冗余检查错误的原因有哪些&#xff1f; 数据…...

剑指offer62.圆圈中最后剩下的数字

这道题在算法课上的一个小故事上有一个类似的&#xff0c;就是一个军官打了败仗&#xff0c;带着他的几个兵逃到一个山洞&#xff0c;他们不想当俘虏想自杀&#xff0c;但是军官不想自杀但是又不好意思走&#xff0c;于是军官想了个办法&#xff0c;他们几个人围成一个圈&#…...

Python分享之 Spider

一、网络爬虫 网络爬虫又被称为网络蜘蛛&#xff0c;我们可以把互联网想象成一个蜘蛛网&#xff0c;每一个网站都是一个节点&#xff0c;我们可以使用一只蜘蛛去各个网页抓取我们想要的资源。举一个最简单的例子&#xff0c;你在百度和谷歌中输入‘Python&#xff0c;会有大量和…...

Golang项目中如何轻松实现私有仓库pkg包的引入

在企业内部创建一个公共的Golang模块工程可以帮助提高代码复用性和开发效率。本文将从如何创建一个公共的Golang工程开始&#xff0c;指导你一步步创建它、并引入到你的工程中。 1、公共模块规范 下面是一个简单的步骤指南来创建这样一个公共模块项目。 创建版本控制仓库&am…...

Python项目实战:基于napari的3D可视化(点云+slice)

文章目录 一、napari 简介二、napari 安装与更新三、napari【巨巨巨大的一个BUG】四、napari 使用指南4.1、菜单栏&#xff08;File View Plugins Window Help&#xff09;4.2、Window&#xff1a;layer list&#xff08;参数详解&#xff09;4.3、Window&#xff1a;layer…...

go的gin和gorm框架实现切换身份的接口

使用go的gin和gorm框架实现切换身份的接口&#xff0c;接收前端发送的JSON对象&#xff0c;查询数据库并更新&#xff0c;返回前端信息 接收前端发来的JSON对象&#xff0c;包含由openid和登陆状态组成的一个string和要切换的身份码int型 后端接收后判断要切换的身份是否低于该…...

仓库库存管理难点在哪?有哪些仓库库存管理软件?

仓库库存管理常见的难点有&#xff1a;库存数据混乱、库存成本较高、库存积压严重等问题 使用仓库管理软件&#xff0c;企业可以更好地管理库存、优化供应链、提高操作效率&#xff0c;并基于准确的数据进行决策和规划&#xff0c;从而解决许多仓库库存管理中的难题。 一、仓库…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...