目录

A、求和

B、矩形切割

C、不同子串

D、质数

E、最大降雨量

F、旋转

G、外卖店优先级

H、人物相关性分析

I、等差数列

J、打扫机器人


A、求和

试题 A: 求和
本题总分:5 分
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包
括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 2019 中,所有这样的数的和是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解:

package action;public class demo {public static void main(String[] args) {int sum = 0;for (int i = 0; i <= 2019; i++) {// 将数字转换为字符串String str = String.valueOf(i);if (str.contains("2") || str.contains("0") || str.contains("1") ||str.contains("9")) {sum += i;}}System.out.println(sum);}
}

B、矩形切割

试题 B: 矩形切割
本题总分:5 分
【问题描述】
小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。
当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方
形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。
例如,对于一块两边分别为 5 和 3 的材料(记为 5 × 3),小明会依次切出
3 × 3、2 × 2、1 × 1、1 × 1 共 4 个正方形。
现在小明有一块矩形的材料,两边长分别是 2019 和 324。请问小明最终会
切出多少个正方形?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解:

package action;public class demo {public static void main(String[] args) {int x = 2019;//目标数据int y = 324;System.out.println(f(x, y, 0));}public static int f(int x, int y, int count) {if (x == 0 || y == 0) {return count;}if (x >= y) {return f((x - y), y, ++count);} else {return f(x, (y - x), ++count);}}
}

C、不同子串

试题 C: 不同子串
本题总分:10 分
【问题描述】
一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成
的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解:

package action;import java.util.HashSet;
import java.util.Set;public class demo {public static void main(String[] args) {String str = "0100110001010001";Set<String> set = new HashSet<String>();for (int i = 0; i <= str.length(); i++) {for (int j = i+1; j <= str.length(); j++) {set.add(str.substring(i, j));}}System.out.println(set.size());}
}

D、质数

试题 D: 质数
本题总分:10 分
【问题描述】
我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……请你计算
第 2019 个质数是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解:

package action;public class demo {public static void main(String[] args) {int count = 1;for (int i = 1; i <= 2019; i++) {for (int j = count + 1;; j++) {if (f(j)) {count = j;break;}}}System.out.println(count);}/*** 判断一个数是否是质数* @param x* @return*/public static boolean f(int x) {if (x < 3) {return (x > 1);}for (int i = 2; i <= Math.sqrt(x); i++) {if (x % i == 0) {return false;}}return true;}
}

E、最大降雨量

试题 E: 最大降雨量
本题总分:15 分
【问题描述】
由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。
这个法术需要用到他手中的 49 张法术符,上面分别写着 1 至 49 这 49 个
数字。法术一共持续 7 周,每天小明都要使用一张法术符,法术符不能重复使
用。
每周,小明施展法术产生的能量为这周 7 张法术符上数字的中位数。法术
施展完 7 周后,求雨将获得成功,降雨量为 7 周能量的中位数。
由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分

题解:

package action;public class demo {public static void main(String[] args) {System.out.println(49 - 16 + 1);}
}

F、旋转

试题 F: 旋转
时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时
针旋转 90 度。
我们用一个 n × m 的二维数组来表示一个图片,例如下面给出一个 3 × 4 的
图片的例子:
1 3 5 7
9 8 7 6
3 5 9 7
这个图片顺时针旋转 90 度后的图片如下:
3 9 1
5 8 3
9 7 5
7 6 7
给定初始图片,请计算旋转后的图片。
【输入格式】
输入的第一行包含两个整数 n 和 m,分别表示行数和列数。
接下来 n 行,每行 m 个整数,表示给定的图片。图片中的每个元素(像
素)为一个值为 0 至 255 之间的整数(包含 0 和 255)。
【输出格式】
输出 m 行 n 列,表示旋转后的图片。
【样例输入】
3 4
1 3 5 7
9 8 7 6
3 5 9 7
【样例输出】
3 9 1
5 8 3
9 7 5
7 6 7
【评测用例规模与约定】
对于 30% 的评测用例,1 ≤ n, m ≤ 10。
对于 60% 的评测用例,1 ≤ n, m ≤ 30。
对于所有评测用例,1 ≤ n, m ≤ 100。

题解:

package action;import java.util.Scanner;public class demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int [][] arr = new int[n+1][m+1];for (int i = 1; i < arr.length; i++) {for (int j = 1; j < arr[i].length; j++) {arr[i][j] = sc.nextInt();}}int [][] brr = new int[m+1][n+1];// 转换for (int i = 1; i < brr.length; i++) {for (int j = 1; j < brr[i].length; j++) {brr[i][j] = arr[n-j+1][i]; }}// 打印for (int i = 1; i < brr.length; i++) {for (int j = 1; j < brr[i].length; j++) {System.out.print(brr[i][j]+" ");}System.out.println();}}
}

G、外卖店优先级

试题 G: 外卖店优先级
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ∼ N。每家外卖店都有
一个优先级,初始时 (0 时刻) 优先级都为 0。
每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减
到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。
如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果
优先级小于等于 3,则会被清除出优先缓存。
给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优
先缓存中。
【输入格式】
第一行包含 3 个整数 N、M 和 T。
以下 M 行每行包含两个整数 ts 和 id,表示 ts 时刻编号 id 的外卖店收到
一个订单。
【输出格式】
输出一个整数代表答案。
【样例输入】
2 6 6
1 1
5 2
3 1
6 2
2 1
6 2
【样例输出】
1
【样例解释】
6 时刻时,1 号店优先级降到 3,被移除出优先缓存;2 号店优先级升到 6,
加入优先缓存。所以是有 1 家店 (2 号) 在优先缓存中。
【评测用例规模与约定】
对于 80% 的评测用例,1 ≤ N, M, T ≤ 10000。
对于所有评测用例,1 ≤ N, M, T ≤ 100000,1 ≤ ts ≤ T,1 ≤ id ≤ N

题解:

package action;import java.util.Scanner;public class demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int t = sc.nextInt();int[][] arr = new int[n + 1][t + 1];for (int i = 0; i < m; i++) {int t1 = sc.nextInt(); // 时刻int n1 = sc.nextInt(); // 几店arr[n1][t1]++; // n店t时刻的订单数}int count = 0; // 优先缓存个数// 对每家店进行计算for (int i = 1; i <= n; i++) {int num = 0; // 缓存值boolean f = false; // 判断是否是优先缓存for (int j = 1; j <= t; j++) {if (arr[i][j] == 0) { // 没有订单时if (num <= 0) {num = 0;} else {num--;}} else {num += 2 * arr[i][j]; // 有订单时:缓存值是每个订加2}if (num > 5) {f = true;}if (num <= 3) {f = false;}}if (f) {count++;}}System.out.println(count);}
}

测试数据通过

H、人物相关性分析

试题 H: 人物相关性分析
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
小明正在分析一本小说中的人物相关性。他想知道在小说中 Alice 和 Bob
有多少次同时出现。
更准确的说,小明定义 Alice 和 Bob“同时出现”的意思是:在小说文本
中 Alice 和 Bob 之间不超过 K 个字符。
例如以下文本:
This is a story about Alice and Bob. Alice wants to send a private message to Bob.
假设 K = 20,则 Alice 和 Bob 同时出现了 2 次,分别是”Alice and Bob”
和”Bob. Alice”。前者 Alice 和 Bob 之间有 5 个字符,后者有 2 个字符。
注意:
1. Alice 和 Bob 是大小写敏感的,alice 或 bob 等并不计算在内。
2. Alice 和 Bob 应为单独的单词,前后可以有标点符号和空格,但是不能
有字母。例如 Bobbi 並不算出现了 Bob。
【输入格式】
第一行包含一个整数 K。
第二行包含一行字符串,只包含大小写字母、标点符号和空格。长度不超
过 1000000。
【输出格式】
输出一个整数,表示 Alice 和 Bob 同时出现的次数。
【样例输入】
20
This is a story about Alice and Bob. Alice wants to send a private message to Bob.
【样例输出】
2
【评测用例规模与约定】
对于所有评测用例,1 ≤ K ≤ 1000000。

题解:

package action;import java.util.Scanner;public class demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int K = sc.nextInt();sc.nextLine();String str = sc.nextLine();int count = 0;for (int i = 0; i < str.length() - 8; i++) {if (str.charAt(i) == 'A') {String alicestr = str.substring(i, i + 5);if (alicestr.equals("Alice")) {for (int j = 0; j < K - 3; j++) {if (str.charAt(i + j) == 'B') {String bobstr = str.substring(i + j, i + j + 3);if (bobstr.equals("Bob")) {count++;}}}}}if (str.charAt(i) == 'B') {String bobstr = str.substring(i, i + 3);System.out.println(bobstr);if (bobstr.equals("Bob")) {for (int j = 0; j < K - 5; j++) {if (str.charAt(i + j) == 'A') {String alicestr = str.substring(i + j, i + j + 5);System.out.println(alicestr);if (alicestr.equals("Alice")) {count++;}}}}}}System.out.println(count);}
}

测试数据通过

I、等差数列

试题 I: 等差数列
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一
部分的数列,只记得其中 N 个整数。
现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有
几项?
【输入格式】
输入的第一行包含一个整数 N。
第二行包含 N 个整数 A1, A2, · · · , AN。(注意 A1 ∼ AN 并不一定是按等差数
列中的顺序给出)
【输出格式】
输出一个整数表示答案。
【样例输入】
5
2 6 4 10 20
【样例输出】
10
【样例说明】
包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、
18、20。
【评测用例规模与约定】
对于所有评测用例,2 ≤ N ≤ 100000,0 ≤ Ai ≤ 109。

题解:

package action;import java.util.Arrays;
import java.util.Scanner;public class demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < arr.length; i++) {arr[i] = sc.nextInt();}Arrays.sort(arr);// 获取最小差值int min = arr[arr.length - 1];for (int i = 1; i < arr.length; i++) {if ((arr[i] - arr[0]) < min) {min = (arr[i] - arr[0]);}}System.out.println((arr[arr.length - 1] - arr[0]) / min + 1);}
}

J、打扫机器人

试题 J: 扫地机器人
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所
示。

走廊内部署了 K 台扫地机器人,其中第 i 台在第 Ai 个方格区域中。
已知扫地机器人每分钟可以移动到左右相邻的方格中,并将该区域清扫干
净。
请你编写一个程序,计算每台机器人的清扫路线,使得
1. 它们最终都返回出发方格,
2. 每个方格区域都至少被清扫一遍,
3. 从机器人开始行动到最后一台机器人归位花费的时间最少。
注意多台机器人可以同时清扫同一方块区域,它们不会互相影响。
输出最少花费的时间。
在上图所示的例子中,最少花费时间是 6。第一台路线:2-1-2-3-4-3-2,清
扫了 1、2、3、4 号区域。第二台路线 5-6-7-6-5,清扫了 5、6、7。第三台路线
10-9-8-9-10,清扫了 8、9 和 10。
【输入格式】
第一行包含两个整数 N 和 K。
接下来 K 行,每行一个整数 Ai。

案例:
输入:
10 3
3 5 8
输出:
6

题解视频:

JavaC组第十届第十题扫地机器人_哔哩哔哩_bilibili

题解:

package action;
import java.util.Arrays;
import java.util.Scanner;public class demo {static int N,K;static int arr[];//存储机器人坐标public static void main(String[] args) {Scanner sc=new Scanner(System.in);N=sc.nextInt();K=sc.nextInt();arr=new int[K];for (int i = 0; i < K; i++) {arr[i]=sc.nextInt();}//输入流没用了sc.close();Arrays.sort(arr);//自然排序int l=0,r=N,mid=0;while (l <= r) {//相当于二分查找mid=(r+l)>>>1;if(check(mid)) {r = mid-1;}else l = mid+1; }System.out.println((mid-1)*2);}private static boolean check(int m) {int sum=0;//记录扫描区域for (int i = 0; i < K; i++) {//遍历每个机器人if(arr[i]-m<=sum) {if(arr[i]<=sum) {sum=arr[i]+m-1;}else sum+=m;}else return false;}return sum >= N;}
}

测试数据:

10 3
5 2 10


希望能对大家有所帮助。

第十届蓝桥杯省赛JavaC组真题——详细答案对照(完整版-包含打扫机器人的视频全过程讲解与编码内容对照)相关推荐

  1. 第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)

    目录 A.哪天返回 B.猴子分香蕉 C.字母阵列 ​ D.第几个幸运数 E.书号验证 F.打印大X ​ G.缩位求和 ​ H.等腰三角形 I.小朋友崇拜圈 ​ J.耐摔指数 A.哪天返回 小明被不明势 ...

  2. 第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)

    目录 A.有奖猜谜 B.煤球数目 C.平方怪圈 D.骰子游戏 E.分小组 F.凑算式 G.搭积木 H.冰雹数 I.四平方和 J.密码脱落 A.有奖猜谜 小明很喜欢猜谜语. 最近,他被邀请参加了X星球的 ...

  3. 第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版·冰雹数递归解法·超简易)

    目录 A.有奖猜谜 B.煤球数目 C.平方怪圈 D.骰子游戏 E.分小组 F.凑算式 G.搭积木 H.冰雹数 题解1: 题解2: [2022级王组顼]先生提供的简易写法,需要思考规律. 题解3: [2 ...

  4. 第十三届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)

    前言 本次题目我认为还是比较难的,有人做了一个分析,我们来看看啊. 话说真的对于大专生来说已经是非常难的了呢,能拿到省一的基本上都是万里挑一的孩子呢. 目录 前言 试题 A: 排列字母 试题 B: 特 ...

  5. 第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)

    目录 A.外星日历 B.兴趣小组 C.纸牌三角形 D.承压计算 E.杨辉三角(填空) F.最大公共子串 G.Excle地址 H.拉马车 I.青蛙跳杯子 J.图形排版 A.外星日历 某星系深处发现了文明 ...

  6. 2019年第十届蓝桥杯省赛B组真题解析

    A 组队 试题A 本题总分:5分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员, 组成球队的首发阵容. 每位球员担任 1号位至 5号位时的评分如下表所示.请你计算首 ...

  7. 第六届蓝桥杯省赛javaB组真题及答案

    第一题:三角形面积如图1所示.图中的所有小方格面积都是1.那么,图中的三角形面积应该是多少呢? 答案:88-84/2-64/2-82/2=28: 第二题:立方变自身观察下面的现象,某个数字的立方,按位 ...

  8. 蓝桥杯 第十三届蓝桥杯省赛C++组真题 修剪灌木 Python

    题目 爱丽丝要完成一项修剪灌木的工作. 有 NN 棵灌木整齐的从左到右排成一排. 爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 00 厘米. 爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪 ...

  9. 第十届蓝桥杯国赛Scratch编程真题解析:沙漠变绿洲

    沙漠变绿洲 准备工作 导入背景<Desert>,在背景上绘制4个树坑 导入角色<Trees> 绘制水滴角色 编程实现 游戏开始,按下并移动鼠标,水滴会从鼠标处呈抛物线落下,水滴 ...

最新文章

  1. CVPR 2020: 移动端机器学习的研究实现
  2. C++打印一个螺旋形的矩阵 a matrix traversing it spirally算法(附完整源码)
  3. 分析FLV文件分析和解析器的开源代码
  4. 用android做用户管理中心,Android 如何设计用户Session管理?
  5. android 系统(155)---如何自己添加号码归属地数据库?
  6. JNI 之 HelloWorld
  7. 日本第四次产业革命瞄准物联网
  8. MAC在命令行运行不带窗口的 Emacs -- 比窗口模式占用的资源更少一些
  9. OD查找QQ sessionkey教程
  10. oppo android root工具箱,oppo R11(全网通 安卓8.1)手机完美获取root教程,最强root工具,亲测可用!...
  11. 两条波浪线符号_最新-Word上中下划波浪线符号怎么打 精品
  12. Win10企业版系统安装 NET Framework 4.8的时候提示错误信息
  13. 西电计科四年(学院任选)课程推荐
  14. 从万物归零到虚拟与现实交错
  15. matlab函数 bsxfun(高效代码)
  16. QT编程从入门到精通之一:“第一章:认识QT”之“1.1 Qt简介”
  17. 自考本计算机软件基础ppt,计算机软件基础自考本科
  18. 记录一下获取的动态ip与路由器ip不符所以要纠错的日常
  19. 计算平均成绩(函数专题),输入某位同学各门课的成绩,输出平均成绩。输入的成绩均为五级制成绩,五级制成绩转换为百分之成绩的规则如下:'A'换为百分之成绩为95分,'B'对应85分,C对应75分,'D'
  20. excel 中vb组合框_Excel组合框上的标题

热门文章

  1. oracle 创建nchar类型,nchar类型的用法!
  2. pyinstaller打包exe在其他机器无法运行_详解pyinstaller selenium python3 chrome打包问题!解决率100%...
  3. html怎么让图片重叠_PS倒影效果怎么做,如何利用PS给产品制作倒影
  4. html 横屏内容显示不全_为什么我的文本显示不全?
  5. Collections.toMap 报错 空指针 key重复
  6. 通过自定义资源扩展Kubernetes
  7. CSS+jQuery/JavaScript图片切换播放
  8. 24、JSON与OC互相转化
  9. 只能在栈上或者堆上创建对象
  10. 如何快速分析一款ios软件或需求的大流程,然后在业务层实现,不牵扯到界面?...