2021 RoboCom 世界机器人开发者大赛-高职组(初赛)

编程题得分:100  总分:100

目录

7-1 机器人打招呼 (5分)

输入格式:

输出格式:

输入样例:

输出样例:

7-2 人脸识别 (10分)

输入格式:

输出格式:

输入样例 1:

输出样例 1:

输入样例 2:

输出样例 2:

7-3 月份输出 (10分)

输入格式:

输出格式:

输入样例:

输出样例:

7-4 字母串 (15分)

输入格式:

输出格式:

输入样例:

输出样例:

7-5 增一数 (15分)

输入格式:

输出格式:

输入样例:

输出样例:

7-6 答题卡 (20分)

输入格式:

输出格式:

输入样例:

输出样例:

7-7 救救倒霉鬼 (25分)

输入格式:

输出格式:

输入样例:

输出样例:


7-1 机器人打招呼 (5分)

机器人小白要来 RoboCom 参赛了,在赛场中遇到人要打个招呼。请你帮它设置好打招呼的这句话:“ni ye lai can jia RoboCom a?”。

输入格式:

本题没有输入。

输出格式:

在一行中输出 ni ye lai can jia RoboCom a?

输入样例:

输出样例:

ni ye lai can jia RoboCom a?

编译器

NO_COMPILER

代码

#include<bits/stdc++.h>
using namespace std;

int main(){
	cout<<"ni ye lai can jia RoboCom a?";
	return 0;
}

编译器输出

 
测试点结果测试点得分耗时内存
0答案正确53.00 ms312 KB

评测结果 答案正确(5 分)

7-2 人脸识别 (10分)

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

输入格式:

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

编译器

NO_COMPILER

代码

#include<bits/stdc++.h>
using namespace std;

int a1, a2, a3, t, b1, b2, b3;

int main(){
	cin >> a1 >> a2 >> a3 >> t >> b1 >> b2 >> b3;
	cout<<"Diff = "<<a1-b1<<", "<<a2-b2<<", "<<a3-b3<<endl;
	if(abs(a1-b1) + abs(a2-b2) + abs(a3-b3) <= t) cout<<"Yes";
	else cout<<"No";
	
	return 0;
}

编译器输出

 
测试点结果测试点得分耗时内存
0答案正确33.00 ms440 KB
1答案正确33.00 ms440 KB
2答案正确13.00 ms456 KB
3答案正确13.00 ms452 KB
4答案正确24.00 ms444 KB

评测结果 答案正确(10 分)

7-3 月份输出 (10分)

本题要求你写一个程序帮助小朋友学习用英语描述月份。已知英文的 12 个月份为:

  • 一月:January

  • 二月:February

  • 三月:March

  • 四月:April

  • 五月:May

  • 六月:June

  • 七月:July

  • 八月:August

  • 九月:September

  • 十月:October

  • 十一月:November

  • 十二月:December

输入格式:

输入包括若干行,每一行里给出一个整数。

输出格式:

对每一行的输入,如果该整数在 1 到 12 之间,则在一行中输出这个数字对应的英文月份单词;否则输出 ? 并结束程序。题目保证程序会结束。

输入样例:

10
5
28
-1

输出样例:

October
May
?

编译器

NO_COMPILER

代码

#include<bits/stdc++.h>
using namespace std;

int t;

int main(){
	while(cin>>t){
		if(t==1) cout<<"January"<<endl;
		else if(t==2) cout<<"February"<<endl;
		else if(t==3) cout<<"March"<<endl;
		else if(t==4) cout<<"April"<<endl;
		else if(t==5) cout<<"May"<<endl;
		else if(t==6) cout<<"June"<<endl;
		else if(t==7) cout<<"July"<<endl;
		else if(t==8) cout<<"August"<<endl;
		else if(t==9) cout<<"September"<<endl;
		else if(t==10) cout<<"October"<<endl;
		else if(t==11) cout<<"November"<<endl;
		else if(t==12) cout<<"December"<<endl;
		else {
			cout<<"?";break;
		}
		
	}
	
	return 0;
}

编译器输出

 
测试点结果测试点得分耗时内存
0答案正确53.00 ms440 KB
1答案正确33.00 ms444 KB
2答案正确13.00 ms440 KB
3答案正确13.00 ms440 KB

评测结果 答案正确(10 分)

7-4 字母串 (15分)

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

  • 如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中下一个字母的大写;
  • 如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中前一个字母的小写;
  • 当然也可以什么都不写,就结束这个字母串。

例如 aAaABCDdcbBC 就是一个合法的字母串;而 dEFfeFGhI 就是非法的。注意 a 没有前一个字母, Z 也没有下一个字母。

现在面对全班学生交上来的作业,老师请你写个程序自动批改。

输入格式:

输入在第一行给出一个不超过 100 的正整数 N。随后 N 行,每行给出一位学生的作业,即仅由英文字母组成的非空字母串,长度不超过 2×106。

输出格式:

对每位学生的作业,如果正确就在一行中输出 Y,否则输出 N

输入样例:

2
aAaABCDdcbBC
dEFfeFGhI

输出样例:

Y
N

编译器

NO_COMPILER

代码

#include<bits/stdc++.h>
using namespace std;

int t;
string s;

int main(){
	cin>>t;
	while(t--){
		cin>>s;
		int n = s.size();
		int i;
		for(i = 1; i<n; ++i){
			if(s[i-1]>='A' && s[i-1]<='Z'){
				if(s[i] == s[i-1]-'A'+'a' || s[i] == s[i-1]+1) continue;
				else break;
			}
			else if(s[i-1]>='a' && s[i-1]<='z'){
				if(s[i] == s[i-1]-'a'+'A' || s[i] == s[i-1]-1) continue;
				else break;
			}
		}
		if(i==n) cout<<"Y"<<endl;
		else cout<<"N"<<endl;
	}
	
	return 0;
}

编译器输出

 
测试点结果测试点得分耗时内存
0答案正确85.00 ms452 KB
1答案正确24.00 ms452 KB
2答案正确15.00 ms584 KB
3答案正确24.00 ms328 KB
4答案正确246.00 ms4392 KB

评测结果 答案正确(15 分)

7-5 增一数 (15分)

反思:

        这题最坑,4号测试点卡了很久,结果是前导零的坑。输入034,要进行前导零去除处理,变成34,再进行后续的判断。

若一个正整数有 2n 个数位,后 n 位组成的数恰好比前 n 位组成的数大 1,则这个数称为增一数。例如 34、2526、233234 都是增一数。如果这个数还是某个数的平方,则称为平方增一数。你的任务就是判断任一给定正整数是否平方增一数。

输入格式:

输入在第一行中给出一个正整数 N(≤100),随后 N 行,每行给出一个不超过 231 的待判定的正整数。

输出格式:

对每个待判定的正整数,在一行中输出判定结果:如果是平方增一数,则输出 2;如果只是普通增一数,则输出 1;如果不是增一数,则输出 0。

输入样例:

3
528529
2324
5678

输出样例:

2
1
0

编译器

NO_COMPILER

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;

int t;
int ss;

signed main(){
	cin>>t;
	while(t--){
//		cin>>s;
//		int n = s.size();
		string s;
		cin>>ss;
		int n = 0;
		while(ss){
			n++;
			s.push_back('0' + ss%10);
			ss /= 10;
		}
		for(int i = 0; i<s.size()/2; ++i){
			swap(s[i], s[s.size()-1-i]);
		}
//		cout<<n<<endl;
//		cout<<s<<endl;
//		int n = s.size();//0123
		if(n%2){
//			cout<<n<<endl;
//			cout<<s<<endl;
			cout<<0<<endl;
			continue;
		}
		//str to int
		int a = 0, b = 0, i;
		for(i = 0; i<n/2; ++i){
			a *= 10;
			a += s[i]-'0';
		}
		for(i; i<n; ++i){
			b *= 10;
			b += s[i]-'0';
		}
//		cout<<a<<" "<<b<<endl;
		int c = a;
		for(int i = 1; i<=n/2; ++i) c *= 10;
		c += b;
		
//		cout<<a<<" "<<b<<" "<<c<<endl;
		
		int ans = 0;
		
		if(a+1 == b && ((int)sqrt(c))*((int)sqrt(c)) == c) ans = 2;
		else if(a+1 == b) ans = 1;
		else ans = 0;		

		cout<<ans<<endl;		
	}
	
	return 0;
}

/*
卡了半天 

*/

编译器输出

a.cpp: In function ‘int main()’:
a.cpp:21:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i<s.size()/2; ++i){
                  ~^~~~~~~~~~~
a.cpp:39:8: warning: statement has no effect [-Wunused-value]
   for(i; i<n; ++i){
        ^
测试点结果测试点得分耗时内存
0答案正确84.00 ms452 KB
1答案正确15.00 ms440 KB
2答案正确14.00 ms456 KB
3答案正确16.00 ms436 KB
4答案正确13.00 ms452 KB
5答案正确13.00 ms312 KB
6答案正确24.00 ms604 KB

评测结果 答案正确(15 分)

7-6 答题卡 (20分)

新浪微博上有网友发文称:“朋友买了本玻尔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

输出样例:

.#.#.
.....
..##.
..#..
#...#

编译器

NO_COMPILER

代码

#include<bits/stdc++.h>
//#define int long long 
using namespace std;

int n, m, len;
char g[100][100];
string s;

signed main(){
	cin>>n>>m;
	for(int i = 1; i<=n; ++i){
		for(int j = 1; j<=n; ++j){
			g[i][j] = '.';
		}
	}
	//y, n-x
	while(m--){
		cin>>s;
		len = s.size();
		int i;
		for(i = 0; i<len; ++i){
			if(s[i] == ';') break;
			if(s[i] == '/') break;
		}
		int a = 0, b = 0;
		if(i==len){
			int num = 0;
			for(int j = 0; j<len; ++j){
				num *= 10;
				num += s[j]-'0';
			}
//			cout<<num;
			a = num / 100;
			b = num % 100;
		}
		else{
			for(int j = 0; j<i; ++j){
				a *= 10;
				a += s[j]-'0';
			}
			for(int j = i+1; j<len; ++j){
				b *= 10;
				b += s[j]-'0';
			}
		}
		g[n-b+1][a] = '#';
	}
	for(int i = 1; i<=n; ++i){
		for(int j = 1; j<=n; ++j){
			cout<<g[i][j];
		}
		cout<<"\n";
	}
		
	return 0;
}

编译器输出

 
测试点结果测试点得分耗时内存
0答案正确124.00 ms564 KB
1答案正确24.00 ms576 KB
2答案正确64.00 ms564 KB

评测结果 答案正确(20 分)

7-7 救救倒霉鬼 (25分)

倒霉鬼抗着一大箱银行票据去邮寄,却不慎掉进了西湖…… 他奋力游上岸并且顺便抢救了一些票据。但还是有一些票据落到了西湖底必须补做…… 于是请你写程序帮帮倒霉鬼,给他列出来需要重新补做的票据有哪些?

输入格式:

输入首先给出全部一箱票据的信息:在第一行给出不超过 105 的正整数 N,随后 N 行,每行给出一张票据的编号。题目保证编号不重复。

随后是抢救回来的票据的信息,首先是一个小于 N 的非负整数 M,随后 M 行,每行给出一份抢救回来的票据的编号。题目保证编号存在。

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

输出格式:

按字典序递减输出丢失的票据的编号,每个编号占一行。

输入样例:

5
A20190289
B20018372
A19873001
T27346900
B00247834
3
T27346900
A19873001
B20018372

输出样例:

B00247834
A20190289

编译器

NO_COMPILER

代码

#include<bits/stdc++.h>
//#define int long long 
using namespace std;

int n, m;
string s;
set<string> se;

int cnt;
string ans[100005];

signed main(){
	cin>>n;
	for(int i = 1; i<=n; ++i){
		cin>>s;
		se.insert(s);
	}
	cin>>m;
	for(int i = 1; i<=m; ++i){
		cin>>s;
		se.erase(s);
	}
	auto t = se.begin();
	for(t; t!=se.end(); t++){
		ans[++cnt] = *t;
	}
	for(int i = cnt; i>=1; --i) cout<<ans[i]<<endl;	
	
	return 0;
}

编译器输出

a.cpp: In function ‘int main()’:
a.cpp:24:7: warning: statement has no effect [-Wunused-value]
  for(t; t!=se.end(); t++){
       ^
测试点结果测试点得分耗时内存
0答案正确156.00 ms3524 KB
1答案正确16.00 ms3520 KB
2答案正确16.00 ms3512 KB
3答案正确497.00 ms11312 KB
4答案正确4186.00 ms11832 KB

评测结果 答案正确(25 分)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

yolov5增加AFPN-全新特征融合模块AFPN,效果完胜PAFPN

论文学习&#xff1a;AFPN: Asymptotic Feature Pyramid Network for Object Detection-全新特征融合模块AFPN&#xff0c;完胜PAFPN_athrunsunny的博客-CSDN博客 先上配置文件yolov5s-AFPN.yaml # YOLOv5 &#x1f680; by Ultralytics, AGPL-3.0 license# Parameters nc: 80…

OpenCV:深入Feature2D组件——角点检测

角点检测 1 Harris角点检测1.1 兴趣点与角点1.2 角点检测1.3 harris角点检测1.4 实现harris角点检测&#xff1a;cornerHarris()函数1.5 综合案例&#xff1a;harris角点检测与测绘 2. Shi—Tomasi角点检测2.1Shi—Tomasi角点检测概述2.2 确定图像强角点&#xff1a;goodFeatur…

实时包裹信息同步:WebSocket 在 Mendix 中的应用

场景介绍 在现代物流中&#xff0c;能够实时跟踪包裹信息&#xff0c;尤其是包裹重量&#xff0c;是非常重要的。在这种场景中&#xff0c;我们可以使用称重设备获取包裹的信息&#xff0c;然后实时将这些信息同步给 Mendix 开发的 App&#xff0c;并在 App 的页面上实时显示包…

用git下载gitee上的项目资源

目录 用git下载gitee上的项目资源 用git 的clone 命令 然后到gitee上复制相关的下载地址&#xff1a; 粘贴到clone后面即可&#xff08;注意地址与clone之间有空格&#xff01;&#xff01;&#xff01;&#xff09; 运行结果&#xff1a; 用git下载gitee上的项目资源 用git…

MySQL安装与部署

第一种方法&#xff1a;在线安装 配置一个安装yum源 Adding the MySQL Yum Repository 可以手动配置yum源&#xff0c;baseurl指向国内镜像源地址&#xff0c;比如清华、中科大。 Installing MySQL Starting the MySQL Server&#xff1a; 查询临时登录密码 修改数据库密码…

golang 结构体struct转map实践

1、反射 type sign struct { Name string json:"name,omitempty" Age int json:"age,omitempty" } var s sign s.Name "csdn" s.Age 18 //方式1 反射 var data make(map[string]interface{}) t : reflect.TypeOf(s) v : …

Spring Bean的实例化过程

一、前言 对于写Java的程序员来说&#xff0c;Spring已经成为了目前最流行的第三方开源框架之一&#xff0c;在我们充分享受Spring IOC容器带来的红利的同时&#xff0c;我们也应该考虑一下Spring这个大工厂是如何将一个个的Bean生产出来的&#xff0c;本期我们就一起来讨论一…

2023年第三届工业自动化、机器人与控制工程国际会议

会议简介 Brief Introduction 2023年第三届工业自动化、机器人与控制工程国际会议&#xff08;IARCE 2023&#xff09; 会议时间&#xff1a;2023年10月27 -30日 召开地点&#xff1a;中国成都 大会官网&#xff1a;www.iarce.org 2023年第三届工业自动化、机器人与控制工程国际…

Redis通信协议

RESP协议 Redis是一个CS架构的软件&#xff0c;通信一般分两步&#xff08;不包括pipeline和PubSub&#xff09;&#xff1a; ① 客户端&#xff08;client&#xff09;向服务端&#xff08;server&#xff09;发送一条命令 ② 服务端解析并执行命令&#xff0c;返回响应结果…

Spring MVC各种参数进行封装

目录 一、简单数据类型 1.1 控制器方法 1.2 测试结果 二、对象类型 2.1 单个对象 2.1.1 控制器方法 2.1.2 测试结果 2.2 关联对象 2.2.1 控制器方法 2.2.2 测试结果 三、集合类型 3.1 简单数据类型集合 3.1.1 控制方法 3.1.2 测试结果 3.2 对象数据类型集合 3.…

使用MQL4编写自己的交易策略:技巧与经验分享

随着技术的发展&#xff0c;越来越多的投资者开始使用程序化交易系统进行交易&#xff0c;其中MQL4语言是广泛应用于MetaTrader 4平台上编写交易策略的一种语言。本文将分享一些技巧和经验&#xff0c;帮助读者利用MQL4编写自己的交易策略。 策略开发流程 首先&#xff0c;我…

传输控制协议 TCP

文章目录 一、TCP报文格式1.报头格式2.TCP最大段长度 MSS 二、TCP连接建立与释放1.连接建立&#xff1a;三次握手2.报文传输3.连接释放&#xff1a;四次挥手4.保持定时器与时间等待定时器 三、TCP差错重传1.字节流状态分类与滑动窗口&#xff08;发送&#xff09;① 滑动窗口两…

Android Studio实现内容丰富的安卓博客发布平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号078 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看博客列表…

[AJAX]原生AJAX——自定义请求头

客户端 <script>// 1、创建对象const xhr new XMLHttpRequest();// 2、初始化&#xff1a;设置请求类型和urlxhr.open(POST, http://127.0.0.1:8000/server);// 设置请求头// Content-Type&#xff1a;设置请求体内容类型// application/x-www-form-urlencoded&#xf…

2022(二等奖)C2464植物保护管理系统

作品介绍 一、需求分析 1. 应用背景 森林是陆地生态系统的主体&#xff0c;是人类生存与发展的物质基础。以森林为主要经营对象的林业&#xff0c;不仅承担着生态建设的主要任务&#xff0c;而且承担着提供多种林产品的重大使命。进入21世纪&#xff0c;人类正在继农业文明和…

二进制、十进制相互转换

二进制转十进制&#xff1a; 1100 0000转为十进制的数值为&#xff1a;12864192 十进制转二进制&#xff1a; 列如&#xff1a;十进制数为202 1286432168421二进制11001010 解析&#xff1a; 202>128&#xff0c;第一个二进制数为&#xff1a;1 202-128>64&#xf…

Spring 事务管理方案和事务管理器及事务控制的API

目录 一、事务管理方案 1. 修改业务层代码 2. 测试 二、事务管理器 1. 简介 2. 在配置文件中引入约束 3. 进行事务配置 三、事务控制的API 1. PlatformTransactionManager接口 2. TransactionDefinition接口 3. TransactionStatus接口 往期专栏&文章相关导读 …

【Lua】ZeroBrane Studio免费专业IDE使用详解

▒ 目录 ▒ &#x1f6eb; 问题描述环境 1️⃣ IDE界面说明项目目录编辑器控制台窗口输出窗口选择解释器堆栈窗口监视窗口大纲窗口 2️⃣ 调试程序3️⃣ 自定义lua解释器编译自己的lua解释器增加interpreters配置文件重启IDE 4️⃣ 其它IDE比较Lua EditorVSCode &#x1f6ec; …

Redis:redis基于各大实战场景下的基本使用

文章目录 前言String 命令实战1.业务缓存对应redis中的指令伪代码 2.分布式锁对应redis中的指令伪代码 3.限流对应redis中的指令伪代码 List 命令实战1.提醒功能对应Redis中的指令伪代码 2.热点列表对应Redis中的指令伪代码 Hash 命令实战1.用户资料缓存对应redis中的指令伪代码…

算法设计与分析 课程期末复习简记

目录 网络流 线性规划 回溯算法 分支限界 贪心算法 动态规划 分治算法 算法复杂度分析 相关概念 网络流 下面是本章需要掌握的知识 • 流量⽹络的相关概念 • 最⼤流的概念 • 最⼩割集合的概念 • Dinic有效算法的步骤 • 会⼿推⼀个流量⽹络的最⼤流 下面对此依次进行复…