第十三届蓝桥杯大赛湖南中医药大学第1场选拔赛总结(java版)

news/2024/4/20 15:30:43/文章来源:https://blog.csdn.net/m0_53653948/article/details/128090835

目录

2103: ICPC

2047: 三维迷宫

2062: X星间谍

2064: 两个集合

2065: 数字盒子

2066: 幸运数

2067: 十六进制


2103: ICPC


[命题人 : admin]
时间限制 : 1.000 sec 内存限制 : 128 MB
题目描述
ICPC是国际大学生程序设计竞赛(International Collegiate Programming Contest)的简称,是全球最具影响力的大学生程序设计竞赛。
小Kimi的目标是长大之后能够参加ICPC全球总决赛(World Final),为此他在努力学习编程。
为了表达对ICPC的热爱,他决定编写一个程序,输入一个正整数N,输出N个连续的ICPC,同时他希望所有位于奇数位置的ICPC全部用大写字母,而偶数位置的ICPC全部用小写字母,即“icpc”。你试试能不能写出来?
输入
单组输入。
输入一个正整数N,N<=100。
输出
输出一行,包含N个连续的“ICPC”,其中奇数位置的ICPC全部用大写字母,而偶数位置的ICPC全部用小写字母。
样例输入 Copy
3
样例输出 Copy
ICPCicpcICPC
代码:
 

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);int n=scan.nextInt();for(int i=1;i<=n;i++){if(i%2!=0){System.out.print("ICPC");}else {System.out.print("icpc");}}}
}

2047: 三维迷宫

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

小米同学在MC("我的世界")游戏中用积木块搭建了一个三维迷宫。
在三维迷宫中,X轴对应东西方向(东为正,西为负),Y轴对应南北方向(北为正,南为负),Z轴对应上下方向(上为正,下为负)。
现在小米在游戏中所控制的人物角色的初始坐标位置是(x, y, z),每接收到一个指令字符,角色将朝对应的方向移动一个单位长度。
在游戏中一共包含六个指令字符,“E”表示往东移动,“W”表示往西移动,“S”表示往南移动,“N”表示往北移动,“U”表示往上移动,“D”表示往下移动。
请问在执行一组移动指令后,人物角色的最终位置是多少?请按照X、Y和Z的顺序输出。

输入

单组输入。
第1行输入三个整数x、y和z,表示人物角色的初始坐标位置。其中,-1000<=x,y,z<=1000。两两之间用英文空格隔开。
第2行输入一个由六种字符“E”、“W”、“S”、“N”、“U”和“D”组成的字符串,字符串的长度不超过1000。

输出

输出移动之后人物角色的最终位置,按照X、Y和Z的顺序输出,两两之间用英文空格隔开。

样例输入 Copy

0 0 0
EWESNDUS

样例输出 Copy

1 -1 0
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);int x= scan.nextInt();int y= scan.nextInt();int z= scan.nextInt();String str=scan.next();String[] arr=str.split("");for(int i=0;i<arr.length;i++){if (arr[i].equals("E")){x+=1;} else if (arr[i].equals("W")) {x-=1;}else if (arr[i].equals("S")) {y-=1;}else if (arr[i].equals("N")) {y+=1;}else if (arr[i].equals("U")) {z+=1;}else if (arr[i].equals("D")) {z-=1;}}System.out.println(x+" "+y+" "+z);}
}

2062: X星间谍

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

X星最近潜入了很多来自别的星球的间谍。
X星首领下令在X星都城门口实施实名登记制,每一个进出X星都城的人都需要登记。进城门时需要登记一下编号,出城门时需要再登记一下编号。
X星首领获得了一个疑似间谍的人的编号清单,假定最开始时所有疑似间谍的人都在城外。现在给出N个已经登记的编号(同一个人进城门和出城门的编号相同),因为有的人会反复进出X星都城,所以有的编号会被登记多次,但可以确保每一次登记都是真实可靠的。
请你根据这些登记的编号信息判断还有多少疑似间谍者仍然停留在X星都城内。

输入

单组输入。
第1行输入一个正整数N,表示N个被登记的编号。(N<=10^4)
第2行输入N个被登记的编号(字符串类型),两两之间用英文空格隔开,可能会有一些编号重复。

输出

输出疑似间谍者仍然停留在X星都城内的数量。

样例输入 Copy

6
0001 0002 0001 0002 0003 0002

样例输出 Copy

2

代码:

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;public class Main {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int count=0;int n= Integer.parseInt(scan.nextLine());String line= scan.nextLine();String[] arr=line.split(" ");Set<String> set=new HashSet<>();for (int i=0;i< arr.length;i++){set.add(arr[i]);}String[] arr1=set.toArray(new String[set.size()]);int[] m=new int[arr1.length];for(int i=0;i< arr1.length;i++){for (int j=0;j<arr.length;j++)if(arr1[i].equals(arr[j])){m[i]++;}}for(int i=0;i<m.length;i++){if(m[i]%2!=0){count++;}}System.out.println(count);}}

2086: 奖牌榜

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

X星学校的运动会正在激烈进行中。
现在需要请你编写一个程序来显示所有班级的奖牌榜,显示规则如下:
(1) 优先按照金牌数量降序排列后显示。
(2) 如果金牌数相等则比较银牌数,银牌数多者显示在前。
(3) 如果金牌和银牌数都相等,则比较铜牌数,铜牌数多者显示在前。
(4) 如果金、银、铜数量均相等,则按照班级编号从小到大排列后显示。
(5) 需要按照班级编号、金牌数、银牌数、铜牌数、奖牌总数的顺序显示每个班级的奖牌情况。
已知X星学校的班级编号为一个四位正整数,且班级编号具有唯一性。

输入

单组输入。
第1行输入一个正整数N,表示班级的总数量,N<=9000。
接下来N行,每1行包含四个正整数,分别表示班级编号、金牌数、银牌数和铜牌数。金牌数、银牌数和铜牌数均小于100。两两之间用英文空格隔开。

输出

显示按照规则排序之后的奖牌榜,每一行都包含班级编号、金牌数、银牌数、铜牌数和奖牌总数,两两之间用英文空格隔开。

样例输入 Copy

4
1000 4 10 5
1001 5 11 6
1002 4 11 4
1003 4 10 5

样例输出 Copy

1001 5 11 6 22
1002 4 11 4 19
1000 4 10 5 19
1003 4 10 5 19
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();int[][] arr = new int[n][4];for (int i = 0; i < n; i++) {for (int j = 0; j < 4; j++) {arr[i][j] = scan.nextInt();}}Student[] stu = new Student[n];for (int i = 0; i < n; i++) {stu[i] = new Student(arr[i][0], arr[i][1], arr[i][2], arr[i][3]);}Student temp;//冒泡排序for (int i = 0; i < n - 1; i++) {for (int j = 1; j < n - i; j++) {if (stu[j - 1].getClassno() > stu[j].getClassno()) {temp = stu[j - 1];stu[j - 1] = stu[j];stu[j] = temp;}}}for (int i = 0; i < n - 1; i++) {for (int j = 1; j < n - i; j++) {if (stu[j - 1].getCopperno() < stu[j].getCopperno()) {temp = stu[j - 1];stu[j - 1] = stu[j];stu[j] = temp;}}}for (int i = 0; i < n - 1; i++) {for (int j = 1; j < n - i; j++) {if (stu[j - 1].getSilverno() < stu[j].getSilverno()) {temp = stu[j - 1];stu[j - 1] = stu[j];stu[j] = temp;}}}for (int i = 0; i < n - 1; i++) {for (int j = 1; j < n - i; j++) {if (stu[j - 1].getGoldno() < stu[j].getGoldno()) {temp = stu[j - 1];stu[j - 1] = stu[j];stu[j] = temp;}}}for (int i = 0; i < n; i++) {int sum=stu[i].getGoldno()+stu[i].getSilverno()+stu[i].getCopperno();System.out.println(stu[i].getClassno() + " " + stu[i].getGoldno()+ " " + stu[i].getSilverno()+ " " + stu[i].getCopperno()+" "+sum);}}
}
class Student{private int classno;private int goldno;private int silverno;private int copperno;public Student(int classno,int goldno,int silverno,int copperno){this.classno = classno;this.goldno = goldno;this.silverno = silverno;this.copperno = copperno;}public int getClassno() {return classno;}public int getGoldno() {return goldno;}public int getSilverno() {return silverno;}public int getCopperno() {return copperno;}
}

2064: 两个集合

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

现在有两个分别包含M和N个整数的集合S1和S2。S1中的元素互不相同,S2中的元素也互不相同。
给定一个整数K,然后从S1和S2中各选取一个整数,使得其和等于K。请问一共存在多少种不同的选取方案?
从S1中选取A、从S2中选取B与从S1中选取B、从S2中选取A是两种不同的选取方案。如果一种选取方案都不存在,则输出0。

输入

单组输入。
第1行输入三个整数M、N和K,其中,M和N均不超过10000。
第2行输入M个不同的整数,对应集合S1中的M个元素。
第3行输入N个不同的整数,对应集合S2中的N个元素。

输出

输出不同选取方案的数量;如果一种选取方案都不存在,则输出0。

样例输入 Copy

3 4 0
-1 1 2
-2 1 -1 0

样例输出 Copy

3

代码:

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);int m= scan.nextInt();int n= scan.nextInt();int k= scan.nextInt();int[] S1=new int[m];int[] S2=new int[n];int count=0;for(int i=0;i<m;i++){S1[i]=scan.nextInt();}for(int i=0;i<n;i++){S2[i]=scan.nextInt();}for(int i=0;i<m;i++){for(int j=0;j<n;j++){if((S1[i]+S2[j])==k){count++;}}}System.out.println(count);}
}

2065: 数字盒子

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

小米同学设计了一个数字盒子,只允许在该盒子的顶部对数字进行操作,操作类型包括以下三类:
(1) Add操作:如果盒子顶部有数字,则将数字加1;如果没有数字,则该操作无效。
(2) Push操作:将一个新的数字增加到盒子顶部,新增数字的初始值均为1(盒子可以装下所有的数字)。
(3) Pop操作:删除数字盒子顶部的数字;如果没有数字,则该操作无效。
请问通过N次操作之后,盒子顶部的数字是多少?如果最后盒子的顶部已经没有数字,则输出“No number.”。

输入

单组输入。
第1行输入一个正整数N(N<=1000)表示操作的总数量。
接下来N行每行包含一个操作指令,操作指令包括三类,分别是:Add、Push和Pop。

输出

输出通过N个操作之后盒子顶部的数字;如果最后盒子的顶部已经没有数字,则输出“No number.”。

样例输入 Copy

6
Push
Add
Pop
Push
Add
Add

样例输出 Copy

3

代码:

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);int n=scan.nextInt();String[] arr=new String[n];for(int i=0;i<n;i++){arr[i]= scan.next();}int j=0;int[] a=new int[1002];for(int i=0;i<n;i++){if(arr[i].equals("Push")){j++;a[j]=1;}else if(arr[i].equals("Add")&&a[j]!=0){a[j]++;}else if(arr[i].equals("Pop")&&a[j]!=0){a[j]=0;j--;}}if(a[j]!=0){System.out.println(a[j]);}else {System.out.println("No number.");}}
}

2066: 幸运数

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

小米爸爸的生日是6月17日,因此他特别喜欢“6”和“17”这两个数字,而且他觉得所有包含“6”和“17”的数字都是他的幸运数。当然“17”中的“1”和“7”必须连在一起才行。
现在输入两个正整数M和N,1<=M<N<=999999,请问在M和N之间有多少个满足要求的幸运数?

输入

单组输入。
输入两个正整数M和N,满足1<=M<N<=999999。
两个正整数之间用英文空格隔开。

输出

输出在M和N之间满足要求的幸运数的个数。

样例输入 Copy

1 20

样例输出 Copy

3

代码:

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);int m= scan.nextInt();int n= scan.nextInt();int count=0;for(;m<=n;m++){String x= String.valueOf(m);if(x.contains("6")||x.contains("17")){count++;}}System.out.println(count);}
}

2067: 十六进制

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

小米同学最近在学习进制转换。众所周知,在表示十六进制数时,除了0-9这九个阿拉伯数字外,还引入了“A”、“B”、“C”、“D”、“E”和“F”这六个英文字母(不区分大小写)。
现在给你一个十进制正整数,请问在将其转换为十六进制之后,对应的十六进制表示中有多少位是字母?

输入

单组输入。
输入一个十进制正整数N(N<=10^6)。

输出

输出将N转换成十六进制数字后所包含的字母位的数量,如果没有字母位则输出0。

样例输入 Copy

20

样例输出 Copy

0
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);int n=scan.nextInt();int count=0;while(n!=0){if(n%16>=10){count++;}n=n/16;}System.out.println(count);}
}

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

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

相关文章

Python的10个编程技巧,你不一定都知道

文末有Python资料下载 1. 原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换&#xff08;变量值&#xff09;的方法&#xff0c;请参见下面的示例&#xff1a; 赋值的右侧形成了一个新的元组&#xff0c;左侧立即解析&#xff08;unpack&#xff09;那个&…

leetcode-每日一题-1758-生成交替二进制字符串的最少操作数(简单,数学思想)

这道题标记为简单题是正常的&#xff0c;因为当你想到0或者1开头的时候就已经结束了看看我的分析 那么知道这个信息之后就很简单了&#xff0c;加上我们的位运算符号^作为标记即可&#xff0c;大家看看代码实现 1758. 生成交替二进制字符串的最少操作数 难度简单88收藏分享切换…

Mysql基础知识篇(二)

1.UNION 与 UNION ALL 的区别&#xff1f; 如果使用 UNION&#xff0c;会在表链接后筛选掉重复的记录行如果使用 UNION ALL&#xff0c;不会合并重复的记录行从效率上说&#xff0c;UNION ALL 要比 UNION 快很多&#xff0c;如果合并没有刻意要删除重复行&#xff0c;那么就使…

Java基于springboot+vue的摄影作品展示交流系统 计算机毕业设计

随着时代的发展&#xff0c;人们的精神世界也在不断的丰富&#xff0c;尤其是在当下电子设备发展迅速的背景下&#xff0c;人们通过数码相机或者手机随后就可以拍下每一个美丽的瞬间&#xff0c;但是人们更希望将这些摄影作品传到网上和更多的人进行分享&#xff0c;同时也希望…

电脑键盘功能基础知识,快速入门,抓住这份详细教程

在互联网生活发达的今天&#xff0c;电脑已经成为了学习工作的必备工具。而用来操作电脑的关键&#xff0c;就是我们经常使用的键盘和鼠标。最近有不少的小伙伴来私信小编&#xff0c;希望小编做一个电脑键盘功能基础知识介绍的详细教程。这不&#xff0c;小编应大家要求&#…

用匠心创造可期未来!与广州流辰信息科技一起携手创佳绩!

当今社会世界经济一体化趋势逐渐明朗化&#xff0c;竞争也愈发激烈&#xff0c;同时&#xff0c;这也是一个机遇与挑战并存的开放社会。在机遇面前&#xff0c;作为企业&#xff0c;要紧紧抓住机遇&#xff0c;顺势而为&#xff0c;创造辉煌佳绩&#xff1b;在挑战面前&#xf…

嵌入式 C语言/C++ 常见笔试、面试题 难疑点汇总(经典100道)

#pragma comment。将一个注释记录放置到对象文件或可执行文件中。 #pragma pack。用来改变编译器的字节对齐方式。 #pragma code_seg。它能够设置程序中的函数在obj文件中所在的代码段。如果未指定参数&#xff0c;函数将放置在默认代码段.text中 #pragma once。保证所在文件只…

MySQL软件常见操作

1登录MySQL 登录&#xff0c;如果你配置了环境变量就可以winr&#xff0c;在运行框输入cmd&#xff0c;输入登录命令 第一种&#xff1a;直接输入密码 mysql -uroot -p(你的密码没有有括号) 第二种不直接输入密码 mysql -uroot -p 前面两种都是localhost登录 下面是完整版 m…

slam定位学习笔记(七)-g2o学习

主要学习的是这篇文章&#xff0c;但大佬并没有在文章里面仔细的讲g2o&#xff0c;所以我在网上找了这几篇介绍g2o的文章&#xff0c;讲的十分详细&#xff0c;对入门十分友好&#xff1a;文章一、文章二、文章三&#xff0c;这三篇都是一个作者写的&#xff0c;主要是针对编程…

MATLAB数据导入

MATLAB数据导入 在编写一个程序时&#xff0c;经常需要从外部读入数据。MATLAB使用多种格式打开数据。本章将要介绍MATLAB中数据的导入。 MATLAB中导入数据的方式有两种&#xff0c;分别是在命令行通过代码把数据导进去和通过MATLAB的数据导入向导导入数据。本节将为大家介绍第…

广播实现强制下线功能

实现强制下线功能 强制下线应该是一个比较常用的功能,比如QQ在比的地方被登陆了,就会强制比被挤下线.强制下线的功能还是比较简单的,只需要在界面上弹出一个框,告知用户无法再进行任何操作即可.只能点击确定然后跳转至登录界面.强制下线功能需要关闭所有的Activity,然后返回到…

微服务框架 SpringCloud微服务架构 4 Ribbon 4.3 饥饿加载

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构4 Ribbon4.3 饥饿加载4.3.1 饥饿加载4.3.2 总结4 Ribbon 4.3 饥饿加载 4…

【毕业设计】深度学习车辆颜色识别检测系统 - python opencv YOLOv5

文章目录1 前言2 实现效果3 CNN卷积神经网络4 Yolov55 数据集处理及模型训练6 最后1 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长哦! 这两年开始&#xff0c;各个学校对毕设…

ATJ2157ATJ2127音乐按文件名拼音排序---标案是按内码进行排序

音乐按文件名拼音进行排序参考网站ATJ2157&ATJ2127 排序是按照内码(汉字为GBK即GBK936)排序的按拼音排序unicode与拼音的对比表(U2P.DAT)&#xff0c;需要打包到固件中U2P.DAT数据结构U2P.DAT生成代码是使用DEV-C生成其他说明U2P.DAT与ATJ2127平台代码参考网站 各种字符对…

activiti-api

activiti-api目录概述需求&#xff1a;设计思路实现思路分析1.VariableEvent2.EmptyResult3.BPMNElement4.BPMNError5.ConnectorAbstractSecurityManager参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&…

Mac下安装Hadoop

1、引言 如果想在Mac下安装Hadoop而且让Hadoop能正常运行&#xff0c;那安装之前需要先安装java&#xff0c;在Mac环境下安装Hadoop。 2、配置ssh环境 在Mac下如果想使用Hadoop&#xff0c;必须要配置ssh环境&#xff0c; 如果不执行这一步&#xff0c;后面启动hadoop时会出现…

PyCharm+PyQT5之三界面与逻辑的分离

之二的例程已经实现了界面与逻辑的分离,所建立的 Dialog Mainwindow 或者 widgets 等,界面改变其主调程序(暂且这样叫)更改,或者不需要大规模更改, 主调函数的程序是这样的 import sys import FistUI from PyQt5.QtWidgets import QApplication, QMainWindow,QDialog if __nam…

解决 Android WebView 多进程导致App崩溃

应用场景 应用内有两个位置用到WebView加载页面&#xff0c;具体处理逻辑不能通用。分别扩展了WebView了。应用内独立页面使用Fragment来展示,(采用单Activity架构&#xff09;。应用提供切换语言功能。 问题猜想 一、WebView内核bug 具体路径&#xff1a; 进入app–>设…

cmake使用

1. cmake概述及例子 CMake快速入门 cmake、qmake、cl之间关系 1.1 各种cmake cmake根据CMakeLists.txt生成makefile&#xff0c;make根据makefile行编译。 1.1.1 最简cmake&#xff1a;生成可执行程序&#xff08;一个文件&#xff09; #CMakeLists.txt cmake_minimum_req…

debug - JLX12864C(ST7920-12864)液晶屏不能使用串行通讯的原因

文章目录debug - JLX12864C(ST7920-12864)液晶屏不能使用串行通讯的原因概述调试备注ENDdebug - JLX12864C(ST7920-12864)液晶屏不能使用串行通讯的原因 概述 正在给板子写出厂测试程序, 买的12864型号是JLX12864C. STC官方给的例程是并行通讯, 好使. 但是想在测试程序中改为…