第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告

马肤

温馨提示:这篇文章已超过469天没有更新,请注意相关的内容是否还可用!

摘要:第十四届蓝桥杯省赛Java(B组)真题解析已经出炉,经过测试平台验证的代码均准确无误。本次比赛涉及Java编程语言的多个知识点,包括算法设计、数据结构、面向对象编程等。解析过程详细阐述了题目的解题思路和方法,为参赛者提供了宝贵的参考经验。通过本次解析,参赛者可以更好地掌握Java编程技巧,提升编程能力。

J未完成,暂更。

目录

试题 A: 阶乘求和

【问题描述】

【答案提交】

【代码】:

试题 B: 幸运数字

【问题描述】

【答案提交】  答案为:215040

【思路解析】

【代码】

试题 C: 数组分割

【问题描述】

【输入格式】

【输出格式】

【样例输入】

【样例输出】

【样例说明】

【评测用例规模与约定】

【思路分析】

【代码】

试题 D: 矩形总面积

【问题描述】

【输入格式】

【输出格式】

【样例输入】

【样例输出】

【样例说明】

【评测用例规模与约定】

[思路解析】

【代码】

试题 E: 蜗牛

【问题描述】

【输入格式】

【输出格式】

【样例输入】

【样例输出】

【样例说明】

【评测用例规模与约定】

试题 F: 合并区域

【问题描述】

【输入格式】

【输出格式】

【样例输入】

【样例输出】

【样例说明】

试题 G: 买二赠一

【问题描述】

【输入格式】

【输出格式】

【样例输入】

【样例输出】

【样例说明】

【评测用例规模与约定】

【思路分析】

【代码实现】

试题 H: 合并石子

【问题描述】

【输入格式】

【输出格式】

【样例输入】

【样例输出】

【样例说明】

【评测用例规模与约定】

试题 I: 最大开支

【问题描述】

【输入格式】

【输出格式】

【样例输入】

【样例输出】

【样例说明】

【评测用例规模与约定】

【思路解析】

【代码实现】

试题 J: 魔法阵

【问题描述】

【输入格式】

【输出格式】

【样例输入 1】

【样例输出 1】

【样例输入 2】

【样例输出 2】

【样例说明】

【评测用例规模与约定】


试题 A: 阶乘求和

本题总分:5 分

【问题描述】

令 S = 1! + 2! + 3! + ... + 202320232023!,求 S 的末尾 9 位数字。 提示:答案首位不为 0。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

[思路解析]:

         分析知,到45之后,每个数都含有这几个因子5 10 15 20 25 30 35 40,与偶数可以凑成0,40! 的末九位数就全都为 0 了,而且我们只求末九位数字,所以40!以后的阶乘对我们就没有影响了。 答案为:420940313

【代码】:

// 这里计算阶乘时使用lang存数据,以防数据过大。

/**
 * @ProjectName: study3
 * @FileName: A
 * @author:HWJ
 * @Data: 2023/6/15 21:08
 */
public class A {
    public static void main(String[] args) {
        long total = 0;
        for (int i = 1; i  

试题 C: 数组分割

时间限制: 1.0s 内存限制: 512.0MB 本题总分:10 分

【问题描述】

小蓝有一个长度为 N 的数组 A = [A0, A1, . . . , AN−1]。现在小蓝想要从 A 对 应的数组下标所构成的集合 I = {0, 1, 2, . . . , N − 1} 中找出一个子集 R1,那么 R1

在 I 中的补集为 R2。记 S 1 = ∑

r∈R1 Ar,S 2 = ∑

r∈R2 Ar,我们要求 S 1 和 S 2 均为 偶数,请问在这种情况下共有多少种不同的 R1。当 R1 或 R2 为空集时我们将

S 1 或 S 2 视为 0。

【输入格式】

第一行一个整数 T,表示有 T 组数据。 接下来输入 T 组数据,每组数据包含两行:第一行一个整数 N,表示数组A 的长度;第二行输入 N 个整数从左至右依次为 A0, A1, . . . , AN−1,相邻元素之 间用空格分隔。

【输出格式】

对于每组数据,输出一行,包含一个整数表示答案,答案可能会很大,你 需要将答案对 1000000007 进行取模后输出。

【样例输入】

2
2
6 6
2
1 6

【样例输出】

4

0

【样例说明】

对于第一组数据,答案为 4。(注意:大括号内的数字表示元素在数组中的 下标。)

R1 = {0}, R2 = {1};此时 S 1 = A0 = 6 为偶数, S 2 = A1 = 6 为偶数。

R1 = {1}, R2 = {0};此时 S 1 = A1 = 6 为偶数, S 2 = A0 = 6 为偶数。

R1 = {0, 1}, R2 = {};此时 S 1 = A0 + A1 = 12 为偶数, S 2 = 0 为偶数。

R1 = {}, R2 = {0, 1};此时 S 1 = 0 为偶数, S 2 = A0 + A1 = 12 为偶数。 对于第二组数据,无论怎么选择,都不满足条件,所以答案为 0。

【评测用例规模与约定】

对于 20% 的评测用例,1 ≤ N ≤ 10。 对于 40% 的评测用例,1 ≤ N ≤ 10 2。 对于 100% 的评测用例,1 ≤ T ≤ 10, 1 ≤ N ≤ 10 3 , 0 ≤ Ai ≤ 10 9。

【思路分析】

就是我们需要选择r1包括部分值,r2为剩余值,他们两个均为偶数,当整体和为奇数时,无论如何选择,总有一个为奇数,不满足情况,此组数据返回0,如果当整体和为偶数的时候,我们可以r1选择所有数,然后不断剔除一个任意偶数,或者任意两个奇数,此时就需要将数据按照偶数和奇数分类,计算偶数和奇数个数为偶数even个,奇数odd个,因为偶数和奇数的选择彼此独立,根据乘法法则,总方式为偶数方式*奇数方式。

即(第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第1张 + 第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第2张 + 第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第3张第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第4张 +...... + 第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第5张) * (第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第6张第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第7张 + 第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第8张 + .... + 第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第9张) % 1000000007.

由于取余对除法不满足分配律,但是算组合数第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第10张会遇到除法,则我们需要使用费马小定理来解决这个问题。

原理如下:

第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第11张

【代码】

【费马小定理代码】

public static long qpow(long x, long n) { // 快速幂,求 x 的 n 次方
        long res = 1;
        for (; n >= 1; n >>= 1, x = x * x % mod) {
            if ((n & 1) == 1) {
                res = res * x % mod;
            }
        }
        return res;
    }
    public static long combinatorial(int n, int r) { // 费小马定理
        long res = 1;
        for (int i = 1; i  y3 && y2  y3? (y2 - y1):(y2 - y3);
        }
        if (x == 0){ //  第一个矩形如果不在第二个矩形内部或者相交,考虑是否存在第二个矩形在第一个矩形内部的情况
            if (x3 > x1 && x3  x1 && x4  x1? (x4 - x3):(x3 - x2);
            }
        }
        if (y == 0){
            if (y3 > y1 && y3  y1 && y4  y1? (y4 - y3):(y3 - y2);
            }
        }
        return x*y;
    }
}

 [代码提交结果】

第十四届蓝桥杯省赛真题解析 Java (B组),代码经过测试平台验证,均正确,第十四届蓝桥杯省赛Java真题解析(B组)-测试验证的正确代码解析报告 第12张

试题 E: 蜗牛


时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分

【问题描述】

这天,一只蜗牛来到了二维坐标系的原点。 在 x 轴上长有 n 根竹竿。它们平行于 y 轴,底部纵坐标为 0,横坐标分别 为 x1, x2, ..., xn。竹竿的高度均为无限高,宽度可忽略。蜗牛想要从原点走到第n 个竹竿的底部也就是坐标 (xn, 0)。它只能在 x 轴上或者竹竿上爬行,在 x 轴 上爬行速度为 1 单位每秒;由于受到引力影响,蜗牛在竹竿上向上和向下爬行 的速度分别为 0.7 单位每秒和 1.3 单位每秒。 为了快速到达目的地,它施展了魔法,在第 i 和 i + 1 根竹竿之间建立了传 送门(0

【输入格式】

输入共 1 + n 行,第一行为一个正整数 n; 第二行为 n 个正整数 x1, x2, . . . , xn; 后面 n − 1 行,每行两个正整数 ai , bi+1。

【输出格式】

输出共一行,一个浮点数表示答案(四舍五入保留两位小数)。

【样例输入】

3

1 10 11

1 1

2 1

【样例输出】

4.20

【样例说明】

蜗牛路线:

(0, 0) → (1, 0) → (1, 1) → (10, 1) → (10, 0) → (11, 0),花费时间为 1 + 1 /0.7 + 0 + 1 /1.3 + 1 ≈ 4.20

【评测用例规模与约定】

对于 20% 的数据,保证 n ≤ 15; 对于 100% 的数据,保证 n ≤10^5 ,ai , bi ≤ 10^4,xi ≤ 10^9。

【思路解析】

你从第一杆走到第3杆所用的方式,并不会对后面用时产生影响,走到下一杆至于当前杆的状态有关,所以每走一杆就找到走到这个地方的最短时间,然后不断往后动态规划,就找到了最优时间。

【代码】

import java.util.Scanner;
/**
 * @ProjectName: study3
 * @FileName: E
 * @author:HWJ
 * @Data: 2023/6/16 15:49
 */
public class E {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int[] num =  new int[n+1];
        int[][] ab = new int[n+1][2];
        for (int i = 1; i 

0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码