当前位置:   article > 正文

2022 RoboCom 世界机器人开发者大赛-高职组(省赛)_rc-v2 智能陪护

rc-v2 智能陪护

RC-v1 您好呀 分数 5

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

输入格式:

本题没有输入

输出格式:

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

输入样例:

输出样例:

Nin Hao Ya ~

 提交结果:

代码(Python3)

print("Nin Hao Ya ~")

RC-v2 爷爷奶奶您好呀 分数 10

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

输入格式:

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

性别 姓 名

其中 性别 为 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 ~

 提交结果:

代码(Python3)

  1. data = input().split()
  2. if data[0] == 'F':
  3. print('{} NaiNai Nin Hao Ya ~'.format(data[1]))
  4. else:
  5. print('{} YeYe Nin Hao Ya ~'.format(data[1]))

 RC-v3 智能监测 分数 10

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

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

输入格式:

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

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

输出格式:

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

输入样例:

  1. 5 15
  2. 08:01:23 95
  3. 08:05:00 100
  4. 09:18:23 75
  5. 10:23:51 60
  6. 12:00:59 80

输出样例:

  1. 08:05:00 100
  2. 10:23:51 60

 提交结果:

代码(Python3)

  1. N, T = list(map(int, input().split()))
  2. for i in range(N):
  3. data = input().split()
  4. if 80 - T > int(data[1]) or int(data[1]) > 80 + T:
  5. print(' '.join(data))

RC-v4 生成字母串 分数 15

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

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

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

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

输入格式:

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

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

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

输出格式:

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

输入样例:

  1. 12 a
  2. 001011101101

输出样例:

aAaABCDdcbBC

 提交结果:

代码(Python3)

  1. n, m = input().split()
  2. str1 = input()
  3. str2 = m
  4. for i in str1:
  5. if i == '0':
  6. if m.islower():
  7. str2 += m.upper()
  8. else:
  9. str2 += m.lower()
  10. else:
  11. if m.islower() and m != 'a':
  12. str2 += chr(ord(m) - 1)
  13. elif m.isupper() and m != 'Z':
  14. str2 += chr(ord(m) + 1)
  15. else:
  16. continue
  17. m = str2[-1]
  18. print(str2)

RC-v5 数字宝宝 分数 15

 

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

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

输入格式:

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

输出格式:

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

输入样例 1:

123 45

输出样例 1:

206

输入样例 2:

67 890

输出样例 2:

130

提交结果:

代码(Python3)

  1. n, m = input().split()
  2. num1 = 0
  3. num2 = 1
  4. for i in n:
  5. num1 += int(i)
  6. for i in m:
  7. num2 *= int(i)
  8. if num1 >= num2:
  9. print(str(num1) + str(num2))
  10. else:
  11. print(str(num2) + str(num1))

RC-v6 拼瓷砖 分数 20

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

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

输入格式:

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

输出格式:

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

color = C; size = L; amount = T

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

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

输入样例:

  1. 6 6
  2. aaadee
  3. aacbee
  4. deccda
  5. caccbe
  6. ddecbb
  7. ddadbb

输出样例:

  1. 10
  2. color = a; size = 1; amount = 4
  3. color = a; size = 2; amount = 1
  4. color = b; size = 1; amount = 2
  5. color = b; size = 2; amount = 1
  6. color = c; size = 1; amount = 3
  7. color = c; size = 2; amount = 1
  8. color = d; size = 1; amount = 4
  9. color = d; size = 2; amount = 1
  10. color = e; size = 1; amount = 3
  11. color = e; size = 2; amount = 1

样例解释:

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

提交结果:

代码(Python3)参考了题解 

  1. import sys
  2. def ok(x,y,color):
  3. if x<0 or x>=N or y<0 or y>=M or G[x][y]!=color or vis[x][y]:
  4. return False
  5. return True
  6. def f(color,x,y):
  7. len=1
  8. while True:
  9. flag=0
  10. for i in range(x,x+len):
  11. if not ok(i,y+len-1,color):
  12. flag=1
  13. for i in range(y,y+len):
  14. if not ok(x+len-1,i,color):
  15. flag=1
  16. if flag:
  17. break
  18. len+=1
  19. len-=1
  20. for i in range(x,x+len):
  21. for j in range(y,y+len):
  22. vis[i][j]=1
  23. return len
  24. N, M = list(map(int, sys.stdin.readline().split()))
  25. G=[]
  26. vis=[[0 for _ in range(N)] for _ in range(N)]
  27. mp={}
  28. for i in range(N):
  29. data=list(sys.stdin.readline())
  30. G.append(data)
  31. for i in range(N):
  32. for j in range(M):
  33. if vis[i][j]:
  34. continue
  35. size=f(G[i][j],i,j)
  36. mp[(G[i][j],size)]=mp.get((G[i][j],size),0)+1
  37. print(len(mp))
  38. mp=sorted(mp.items(),key=lambda x:(x[0][0],x[0][1]))
  39. for i in mp:
  40. print("color = {}; size = {}; amount = {}".format(i[0][0],i[0][1],i[1]))

RC-v7 燕归来 分数 25

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

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

输入格式:

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

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

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

输出格式:

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

  1. Missing: X
  2. ID[1]
  3. ...
  4. ID[X]

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

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

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

输入样例 1:

  1. 5
  2. CN009
  3. CN018
  4. CN001
  5. CN005
  6. CN000
  7. 6
  8. US981
  9. CN018
  10. CN000
  11. AUS83
  12. CN005
  13. RU996

输出样例 1:

  1. Missing: 2
  2. CN001
  3. CN009
  4. New: 3
  5. AUS83
  6. RU996
  7. US981

输入样例 2:

  1. 5
  2. CN009
  3. CN018
  4. CN001
  5. CN005
  6. CN000
  7. 5
  8. CN018
  9. CN001
  10. CN005
  11. CN009
  12. CN000

输出样例 2:

  1. All Back
  2. All Known

提交结果:

代码(Python3)

  1. N = int(input())
  2. mis = []
  3. new = []
  4. dict1 = {}
  5. for i in range(N):
  6. dict1[input()] = 0
  7. M = int(input())
  8. for i in range(M):
  9. data = input()
  10. dict1[data] = dict1.get(data, -2) + 1
  11. for i in dict1.keys():
  12. if dict1[i] == -1:
  13. new.append(i)
  14. if dict1[i] == 0:
  15. mis.append(i)
  16. if len(mis) == 0:
  17. print("All Back")
  18. else:
  19. print("Missing: {}".format(len(mis)))
  20. mis.sort()
  21. for i in mis:
  22. print(i)
  23. if len(new) == 0:
  24. print("All Known")
  25. else:
  26. print("New: {}".format(len(new)))
  27. new.sort()
  28. for i in new:
  29. print(i)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/639117
推荐阅读
相关标签
  

闽ICP备14008679号