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

news2024/11/25 12:59:22

7-15 您好呀

title.png

本届比赛的主题是“智能照护”,那么就请你首先为智能照护机器人写一个最简单的问候程序 —— 无论遇见谁,首先说一句“您好呀~”。

输入格式:

本题没有输入

输出格式:

在一行中输出问候语的汉语拼音 Nin Hao Ya ~

输入样例:

输出样例:

Nin Hao Ya ~

Solution:

print("Nin Hao Ya ~")

7-16 爷爷奶奶您好呀

hello.png

现在我们把智能机器人的问候语功能升级一下。当机器人遇到一位老人时,可以通过人脸识别获取到老人的姓名和性别,此时就需要你根据这些信息输出有针对性的问候语。例如当机器人识别出对面是一位女性,姓名是“陈越”的时候,它要会说:“陈奶奶您好呀~”。

输入格式:

输入在一行中按照下面的格式给出一位老人的信息:

性别 姓 名

其中 性别F 时表示女性,M 表示男性。 分别为仅由英文字母组成的、长度不超过 10 的非空字符串。

输出格式:

在一行中输出问候语 X Y Nin Hao Ya ~,其中 X 是老人的 Y 是老人的尊称 —— 如果是女性则为 NaiNai,男性则为 YeYe

输入样例 1:

F Chen Yue

输出样例 1:

Chen NaiNai Nin Hao Ya ~

输入样例 2:

M Hilbert David

输出样例 2:

Hilbert YeYe Nin Hao Ya ~

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(" ");
        if (input[0].equals("F")) System.out.printf("%s NaiNai Nin Hao Ya ~", input[1]);
        else System.out.printf("%s YeYe Nin Hao Ya ~", input[1]);
    }
}

7-17 智能监测

alert.png

在护理中心,智能监测仪分分钟记录着老人的各项身体指标,如果某一项指标超过了阈值范围,就会自动联系医护人员。

本题以心率为例,请你实现智能监测的功能,当发现老人的心率过缓或过急时,就发出预警信号。

输入格式:

输入在第一行中给出 2 个正整数:N(≤1000),为心率监测的数据量;T(≤20)为心率波动阈值 —— 这里我们假设在安静状态下健康成人心率大约平均 80 次/分钟,当老人的心率在区间 [80−T,80+T] 内时被认为是正常的。

随后 N 行,每行给出一个时间点和该时刻测得的心率值,格式为:时时:分分:秒秒 心率,其中 时时 是一天内的小时数,取值区间为 [00, 23];分分秒秒对应分钟数和秒数,取值区间为 [00, 59];心率为不超过 200 的正整数。

输出格式:

按照输入的顺序检查每个给定时刻的心率,如果遇到不正常的数据,在一行中按照输入格式原样输出读到的数据。题目保证至少有一条输出。

输入样例:

5 15
08:01:23 95
08:05:00 100
09:18:23 75
10:23:51 60
12:00:59 80

输出样例:

08:05:00 100
10:23:51 60

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 t = Integer.parseInt(input[1]);
        int low = 80 - t, high = 80 + t;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < n; i++) {
            String s = in.readLine();
            input = s.split(" ");
            int data = Integer.parseInt(input[1]);
            if (data < low || data > high) {
                sb.append(s).append("\n");
            }
        }
        System.out.print(sb);
    }
}

7-18 生成字母串

英语老师要求学生按照如下规则写一串字母:

  • 如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中下一个字母的大写;
  • 如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中前一个字母的小写。

例如 aAaABCDdcbBC 就是一个合法的字母串;而 dEFfeFGhI 就是非法的。

本题就请你编写程序,自动生成一个合法的字母串。

输入格式:

输入在第一行给出一个不超过 104 的正整数 N 和第一个字母。

随后一行给出一个由 01 组成的长度为 N 的字符串。这个串给出了字母串的生成规则:从第一个字母开始,如果对应的规则串字符是 0,则下一个字母应该生成当前字母的大/小写;如果是 1 则下一个字母应该生成当前字母的前/后一个字母。

**注意:**因为字母表中 a 没有前一个字母,Z 没有后一个字母,所以如果此时遇到 1 就忽略之。

输出格式:

在一行中输出按规则生成的字母串。

输入样例:

12 a
001011101101

输出样例:

aAaABCDdcbBC

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]);
        char c = input[1].charAt(0);
        char[] chars = in.readLine().toCharArray();
        StringBuilder sb = new StringBuilder();
        sb.append(c);
        for (int i = 0; i < chars.length; i++) {
            int num = chars[i] - '0';
            if (num == 0) {
                if (c >= 'A' && c <= 'Z') {
                    c += 32;
                    sb.append(c);
                } else if (c >= 'a' && c <= 'z') {
                    c -= 32;
                    sb.append(c);
                }
            } else {
                if (c >= 'A' && c < 'Z') {
                    c += 1;
                    sb.append(c);
                } else if (c > 'a' && c <= 'z') {
                    c -= 1;
                    sb.append(c);
                }
            }
        }
        System.out.println(sb);
    }
}

7-19 数字宝宝

baby.png

为了教宝宝做算术,老师布置了一个作业,题目是这样的:给宝宝两个小于 1000 的正整数,要求宝宝把第一个数字的每一位加起来,得到一个数字 A;再把第二个数字的每一位乘起来,得到一个数字 B。最后要求宝宝把 A 和 B 并排放,大的那个放左边,小的放右边。

这个作业可有点难,下面就请你写个程序,帮助宝宝完成。

输入格式:

输入在一行中给出两个小于 1000 的正整数,数字间以空格分隔。

输出格式:

在一行中按老师的要求输出结果。

输入样例 1:

123 45

输出样例 1:

206

输入样例 2:

67 890

输出样例 2:

130

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 a = Integer.parseInt(input[0]);
        int b = Integer.parseInt(input[1]);
        int A = 0, B = 1;
        while (a != 0) {
            A += a % 10;
            a /= 10;
        }
        while (b != 0) {
            B *= b % 10;
            b /= 10;
        }
        if (A >= B) {
            System.out.printf("%d%d", A, B);
        } else {
            System.out.printf("%d%d", B, A);
        }
    }
}

7-20 拼瓷砖

cz.JPG

对照设计师给出的瓷砖拼接图案,请你统计一下需要多少种不同的瓷砖各多少块?

这里每块瓷砖都是单一颜色的正方形,每种颜色用一个 { 0-9a-zA-Z } 集合中的字符来表示。当设计图中有一方块颜色的面积为 L×L 时,我们将用一整块边长为 L 的正方形瓷砖来填充,而不会选用较小的同色瓷砖来拼接。此外,为了避免多解的情况,我们规定必须按照从上到下、从左到右的顺序贴瓷砖(参见样例解释),瓷砖不可重叠,并且要求每一步选用的瓷砖的面积尽可能大。

输入格式:

输入首先在第一行中给出两个不超过 103 的正整数 NM,对应整面墙的高和宽。随后 N 行,每行给出 M 个字符,对应这一行的颜色分布。

输出格式:

首先在第一行输出不同瓷砖的种类数 K。随后 K 行,每行按格式

color = C; size = L; amount = T

输出一种瓷砖的信息。其中 C 是表示颜色的字符,L 是正方形的边长,T 是这种瓷砖需要的数量。

瓷砖按照其颜色的升序输出,同色的瓷砖按照其边长的升序输出。

输入样例:

6 6
aaadee
aacbee
deccda
caccbe
ddecbb
ddadbb

输出样例:

10
color = a; size = 1; amount = 4
color = a; size = 2; amount = 1
color = b; size = 1; amount = 2
color = b; size = 2; amount = 1
color = c; size = 1; amount = 3
color = c; size = 2; amount = 1
color = d; size = 1; amount = 4
color = d; size = 2; amount = 1
color = e; size = 1; amount = 3
color = e; size = 2; amount = 1

样例解释:

下图中的数字给出了贴瓷砖的顺序。

sample.JPG

Solution:

侥幸拿了 2 分,无法展示代码 😭

// TODO: 2023/3/16

7-21 燕归来

无可奈何花落去,似曾相识燕归来。

研究燕子随季节迁徙的科学家们,给一批燕子做了标记,每只被标记的燕子有一个独特的编号。等它们归来时,再根据标记检查有哪些燕子没有回来,同时有哪些燕子是从别处飞来的,身上带了别人家的标记。

输入格式:

输入首先给出飞走的燕子的信息:在第一行给出不超过 105 的正整数 N,随后 N 行,每行给出一只飞走的燕子的编号。题目保证编号不重复。

随后是飞回的燕子的信息,首先是一个不超过 105 的非负整数 M,随后 M 行,每行给出一只飞回的燕子的编号。题目保证编号不重复。

编号为长度不超过 8 的、由英文字母和数字组成的字符串。

输出格式:

首先输出没有回来的燕子的信息,格式为:

Missing: X
ID[1]
...
ID[X]

其中 X 为没有回来的燕子的数量,ID[i]i = 1, …, X)为按字典序递增输出的这些燕子的编号。

然后输出新增燕子的信息,格式同上,只是把 Missing 换成 New

如果 X 为零,则对应情况下输出 All Back(都回来了)或 All Known(都认识)。

输入样例 1:

5
CN009
CN018
CN001
CN005
CN000
6
US981
CN018
CN000
AUS83
CN005
RU996

输出样例 1:

Missing: 2
CN001
CN009
New: 3
AUS83
RU996
US981

输入样例 2:

5
CN009
CN018
CN001
CN005
CN000
5
CN018
CN001
CN005
CN009
CN000

输出样例 2:

All Back
All Known

Solution:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Set;
import java.util.TreeSet;

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> out = new TreeSet<>();
        Set<String> back = new TreeSet<>();
        Set<String> outTemp = new TreeSet<>();
        for (int i = 0; i < n; i++) {
            String s = in.readLine();
            out.add(s);
            outTemp.add(s);
        }
        int m = Integer.parseInt(in.readLine());
        for (int i = 0; i < m; i++) {
            String s = in.readLine();
            back.add(s);
        }
        out.removeAll(back);
        back.removeAll(outTemp);
        int size1 = out.size();
        int size2 = back.size();
        StringBuilder sb = new StringBuilder();
        if (size1 > 0) {
            sb.append("Missing: ").append(size1).append("\n");
            for (String s : out) {
                sb.append(s).append("\n");
            }
        } else {
            sb.append("All Back\n");
        }
        if (size2 > 0) {
            sb.append("New: ").append(size2).append("\n");
            for (String s : back) {
                sb.append(s).append("\n");
            }
        } else {
            sb.append("All Known\n");
        }
        System.out.print(sb);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/876432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《局外人》阅读笔记

《局外人》阅读笔记 2023年8月14日在杭州小屋读完。我看的是张雨彤编译的这本&#xff0c;这本书包含了两部分&#xff0c;第一部分是《局外人》是原版的小说故事&#xff0c;第二部分是《堕落》包括了六天内的自然自语&#xff0c;完全没看懂&#xff0c;写作风格突变&#xf…

Python爬虫IP代理池的建立和使用

写在前面 建立Python爬虫IP代理池可以提高爬虫的稳定性和效率&#xff0c;可以有效避免IP被封锁或限制访问等问题。 下面是建立Python爬虫IP代理池的详细步骤和代码实现&#xff1a; 1. 获取代理IP 我们可以从一些代理IP网站上获取免费或付费的代理IP&#xff0c;或者自己租…

【人工智能前沿弄潮】—— SAM系列:SAM自动生成物体mask

SAM自动生成物体mask 由于SAM可以高效处理提示&#xff0c;可以通过在图像上抽样大量的提示来生成整个图像的mask。这种方法被用来生成数据集SA-1B。 类SamAutomaticMaskGenerator实现了这个功能。它通过在图像上的网格中对单点输入提示进行抽样&#xff0c;从每个提示中SAM可…

报名小程序PowerActivity配置

https://github.com/zhihuliukanshan/PowerActivity/assets/100545532/9b3e2a3b-f810-4c1f-90d5-9596d99abbd3 导入代码后&#xff0c;需要配置的位置有&#xff1a; 1、miniprogram\setting\setting.js中的CLOUD_ID&#xff1a; module.exports {//### 环境相关 CLOUD_ID: …

【论文阅读】基于深度学习的时序预测——LTSF-Linear

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…

手把手教你如何零成本搭建网站实现内网穿透从而创建自己的数据隧道

手把手教你如何零成本搭建网站实现内网穿透从而创建自己的数据隧道 文章目录 手把手教你如何零成本搭建网站实现内网穿透从而创建自己的数据隧道前言1. 安装网站运行和发布必备软件2. 安装PHPStudy3. 安装wordpress4. 进入wordpress安装程序&#xff0c;进行网页编辑和设置5. 安…

使用FTP文件传输协议的潜在风险

数据&#xff08;事实&#xff0c;数字&#xff0c;价值&#xff09;是当今业务运行的核心要素。但是&#xff0c;如果数据没有得到有效的存储和传输&#xff0c;它们就会成为阻碍业务发展的障碍。如果企业不能及时地把数据送到合适的地方&#xff0c;就会造成严重的经济损失。…

Freemarker+thymeleaf应用实现打印银行小票

背景&#xff1a;最近项目里有个需求&#xff0c;需要动态配置一个模板&#xff0c;来打印各种不同银行或者其他行业的小票&#xff0c;下面小小记录一下实现过程。 关键词&#xff1a;Springboot, thymeleaf, Freemarker,html2image 一&#xff0c;引入依赖 <dependency…

汉诺塔:传说中的智慧游戏

文章目录 前言规则概述数学原理核心Java代码实现结语 前言 汉诺塔&#xff08;Hanoi Tower&#xff09;&#xff0c;又称汉诺塔游戏&#xff0c;是源自印度古老传说的经典智力游戏。这个谜题的起源被认为与印度的寺庙有关&#xff0c;是由僧侣们传承的智慧游戏。汉诺塔塔座包含…

【Java】Web应用的文件上传下载

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理Web应用的文件上传下载&#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1faf0;&#x1…

日撸java三百行day84-87

文章目录 说明1. 网络结构与参数1.1 单层1.2 多层管理 2. CNN网络构建2.1 构建CNN网络建构2.2 初始化卷积神经网络FullCnn对象2.3 获取数据集2.4 训练数据2.4.1 前向传播函数forward2.4.1.1 CONVOLUTION卷积层2.4.1.2 SAMPLING 池化层2.4.1.3 OUTPUT 输出层 2.4.2 反向传播函数…

【华为Datacom 综合拓扑案例—分享篇】

拓扑图 题目要求 实验要求&#xff1a; 1、PC1\PC2\PC3\PC4采用DHCP自动获取IP地址&#xff0c;SW5作为服务器&#xff0c;SW3和SW4作为中继 创建地址池ip pool huawei1和ip pool huawei2&#xff0c;租期都为2天 2、SW3与SW4做链路聚合&#xff0c;采用LACP模式。SW3作为主…

tauri-react:快速开发跨平台软件的架子,支持自定义头部和窗口阴影效果

tauri-react 一个使用 taurireacttsantd 开发跨平台软件的模板&#xff0c;支持窗口头部自定义和窗口阴影&#xff0c;不用再自己做适配了&#xff0c;拿来即用&#xff0c;非常 nice。 开原地址&#xff1a;GitHub - Sjj1024/tauri-react: 一个最基础的使用tauri和react开发…

web测试与app测试的区别

web测试与app测试的区别 首先从系统架构来看的话&#xff1a; web项目&#xff0c;一般都是b/s架构&#xff0c;基于浏览器的&#xff0c;而app则是c/s的&#xff0c;必须要有客户端。那么在系统测试测试的时候就会产生区别了。 web测试只要更新了服务器端&#xff0c;客户端…

黑客利用 Facebook 漏洞,发起网络钓鱼攻击

Bleeping Computer 网站披露&#xff0c;网络攻击者利用 Salesforce 电子邮件服务和 SMTP 服务器中的漏洞&#xff0c;针对一些特定的 Facebook 账户发起复杂的网络钓鱼活动。 据悉&#xff0c;网络攻击者利用 Salesforce 等具有良好信誉的电子邮件网关分发网络钓鱼电子邮件&am…

YOLO v8目标跟踪详细解读(二)

上一篇&#xff0c;结合代码&#xff0c;我们详细的介绍了YOLOV8目标跟踪的Pipeline。大家应该对跟踪的流程有了大致的了解&#xff0c;下面我们将对跟踪中出现的卡尔曼滤波进行解读。 1.卡尔曼滤波器介绍 卡尔曼滤波&#xff08;kalman Filtering&#xff09;是一种利用线性…

网络安全(白帽黑客)大厂面试题

2023年过去了一大半&#xff0c;马上要到金九银十了 先来灵魂三连问&#xff0c;年初定的目标完成多少了&#xff1f;薪资涨了吗&#xff1f;女朋友找到了吗&#xff1f; ​好了&#xff0c;不扎大家的心了&#xff0c;接下来进入正文。 由于我之前写了不少网络安全技术相关的…

誉天HCIA-DataCom课程简介

总课时48小时&#xff0c;每天6课时&#xff0c;共8天 第一天 数据通信网络基础 1.区分网络通信和数据通信网络的概念 2.描述信息传递过程 3.区分不同网络设备&#xff0c;了解基本作用 4.认识不同网络类型以及拓扑类型 网络参考模型 1.理解数据的定义以及传递过程 2.理解网络…

精益制造的基础

一、相关概念 1、技术价值流 定义&#xff1a;把业务构想转化为向客户交付价值的、由技术驱动的服务所需要的流程 2、度量价值流性能指标 前置时间&#xff1a;工单创建后开始计时&#xff0c;到工作完成时结束 处理时间&#xff1a;从实际开始处理工作&#xff0c;到工作完成 …

智能工单系统是什么?它对企业后勤管理有什么作用?

智能工单系统是一种可以按照高度定制化的可视化流程进行设计和操作的工单系统&#xff0c;是报修、售后系统与工单系统的完美结合。与目前市场上的工单系统相比&#xff0c;的修智能工单系统对传统工单模板的操作方式进行了创新&#xff0c;而简单的工作台却没有失去任何工单功…