15届蓝桥杯第三期模拟赛所有题目解析

文章目录

    • 🧡🧡t1_奇数次数🧡🧡
      • 思路
      • 代码
    • 🧡🧡t2_台阶方案🧡🧡
      • 思路
      • 代码
    • 🧡🧡t3_约数个数🧡🧡
      • 思路
      • 代码
    • 🧡🧡t4_最大子矩阵🧡🧡
      • 思路
      • 代码
    • 🧡🧡t5_最少步数🧡🧡
      • 思路
      • 代码
    • 🧡🧡t6_最大极小值与最小极大值🧡🧡
      • 思路
      • 代码
    • 🧡🧡t7_最大的Y🧡🧡
      • 思路
      • 代码
    • 🧡🧡t8_左右相同🧡🧡
      • 思路
      • 代码
    • 🧡🧡t9_求余数🧡🧡
      • 思路
      • 代码
    • 🧡🧡t10_区间计数🧡🧡
      • 思路
      • 代码
    • 🧡🧡t11_数位和🧡🧡
      • 思路
      • 代码

前两期题目解析👇
15届蓝桥杯第一期模拟赛题单详细解析
15届蓝桥杯第二期模拟赛题单详细解析

🧡🧡t1_奇数次数🧡🧡

在这里插入图片描述
在这里插入图片描述

思路

遍历判断即可,简单。

代码

import java.util.Scanner;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);String string = sc.next();int cnt = 0;for (char c : string.toCharArray()) {if ((int) (c - '0') % 2 == 1)cnt++;}System.out.println(cnt);}
}

🧡🧡t2_台阶方案🧡🧡

在这里插入图片描述
在这里插入图片描述

思路

一开始想着直接dfs深搜,但试了下n=1000的情况,跑了很久都没结果,估计了一下时间复杂度为 3 0 + 3 1 + . . . . . . 3 1000 3^0+3^1+......3^{1000} 30+31+......31000。因此小一点的n还可以直接搜出答案,但是过大就不行。
尝试找规律:可以发现,若走台阶方法为a=1,b=2,c=3的情况下,n取1到10,分别为:
在这里插入图片描述
可以发现(用f[i]表示对于n=i的方案数):

  • f [4] = f [1] +f [2] +f [3]
  • f [5] = f [2] +f [3] +f [4]
  • f [6] = f [3] +f [4] +f [5]
  • 因此可以归纳出:f【n】=f【n-1】+f【n-2】+f【n-3】。代表什么含义呢?拿f [6]解释,可以理解为:
    在a=1,b=2,c=3三种跨台阶阶级的情况下,n=6可以
    - 从n=5走a=1阶到达,即在n=5的情况下,再走1次 a=1阶就能到达n=6
    - 从n=4走b=2阶到达,即在n=4的情况下,再走1次b=2阶就能到达n=6
    - 从n=3走c=3阶到达,即在n=3的情况下,再走1次 c=3阶就能到达n=6

从而, 更一般地归纳为:f【n】=f【n-a】+f【n-b】+f【n-c】,因此只要逐个递推出f【n】即可。
需要额外规定的是,f【0】=1。

代码

import java.util.Scanner;
public class Main {public static int a, b, c;public static int[] f = new int[1000010];public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);int n = scanner.nextInt();a = scanner.nextInt();b = scanner.nextInt();c = scanner.nextInt();f[0] = 1;for (int i = 1; i <= n; i++) {if (i - a >= 0)f[i] = (f[i] + f[i - a]) % 1000000007;if (i - b >= 0)f[i] = (f[i] + f[i - b]) % 1000000007;if (i - c >= 0)f[i] = (f[i] + f[i - c]) % 1000000007;}System.out.println(f[n] % 1000000007);}
}

🧡🧡t3_约数个数🧡🧡

在这里插入图片描述

思路

枚举

代码

public class Main {public static void main(String[] args) {// TODO Auto-generated method stubint cnt = 0;for (int i = 1; i <= 2023; i++) {if (2023 % i == 0)cnt++;}System.out.println(cnt);}
}

🧡🧡t4_最大子矩阵🧡🧡

在这里插入图片描述

9719 7515 5916 6467 7157 9614 8560 9075 2099 2838 1403 7652 6238 1699 8907 1804 5384 7942 7546 1978
8785 1944 8108 6040 2010 6646 2750 5410 4516 8757 5624 9257 9030 9290 6833 4646 9749 5304 5633 1573
8525 8244 8514 7474 7896 9731 8402 9036 1869 2688 2085 1667 7753 8466 4911 3812 8585 8319 4020 7350
1949 9120 4424 4057 8277 4511 6333 1533 7624 8932 1053 8682 9284 4134 1466 3607 8753 5310 3728 4163
9420 9185 7055 2342 4143 4499 2036 5374 7026 8638 8866 8364 1706 8767 1601 8309 5695 8179 4142 8489
5876 5660 4658 8307 2582 7544 8793 8207 3979 1692 1400 1893 4500 6389 7198 4836 4761 6603 2859 1312
6367 4174 9956 6668 6771 4795 6492 3937 7096 8041 8644 9379 8071 8667 5810 5794 8147 3823 7877 4822
4809 3297 8518 4972 9754 6854 3271 7891 8882 1052 3197 6035 5628 7674 7931 8085 8970 7733 4745 8785
7536 1511 6964 4763 5409 7032 8963 8576 3411 5853 3316 1267 7851 2735 6953 2970 1810 6830 5576 6903
2241 1575 2379 4679 9519 9290 4802 1562 3509 8365 6777 5143 5610 1061 7880 1935 5793 7023 5629 9571
2480 5937 4612 8890 1964 8532 3309 9737 8507 1849 8544 1500 9282 6288 2137 4730 4239 3473 4643 6377
7341 2881 3430 5815 1972 6629 3817 4547 7561 4779 6578 6114 4972 5505 7515 1800 4784 2272 4502 7541
7665 8607 2022 8192 2605 1346 4155 8725 8167 7022 6136 3615 6057 6329 8671 2033 3151 2249 5981 6412
9046 3353 8650 6965 4179 1248 5659 5219 8083 5615 3821 4436 9217 7356 3914 5717 3734 3765 4435 7210
8951 5013 2951 7401 2329 5686 6530 9581 6539 6881 8634 2663 2916 3019 8529 5645 8201 9270 1939 7275
6429 1531 6322 9586 2793 7968 4001 9665 7624 4369 6245 5146 9567 6801 6064 6199 3210 6753 2586 7795
5771 8507 7973 1470 1475 6896 6781 6572 8412 8557 8255 5268 8960 7251 9214 2489 6920 9917 3810 4605
9116 7950 3715 1697 4703 2868 8673 3106 2579 1074 3992 3547 4279 3149 3396 6081 6221 1125 9358 2471
8360 1526 4116 9278 6325 5175 5533 4107 7522 7599 7711 9211 1752 2431 8321 3844 3579 1047 3987 8487
7600 2401 8748 8945 2078 1519 4614 4576 5706 4040 9358 1928 1327 6699 5258 2846 3418 8310 1249 3866
7796 8668 4087 4258 8992 8996 4617 5997 2527 8204 8927 1456 9340 2088 1605 2299 9878 8347 7789 2122
8372 1102 4243 4208 1651 7861 4947 7802 4704 6204 4455 6012 8494 9060 3747 2786 2136 1830 7424 8309
6919 4420 2031 5399 2652 7219 4048 7013 5094 5276 4225 5976 4157 6722 8765 4679 1604 4986 5033 2623
4015 2297 3067 6261 6623 4577 4589 4747 6659 7667 7853 4040 6393 9606 7219 9334 1316 3430 9963 5187
4998 3735 9884 2990 1374 8436 6674 3018 5714 9352 8708 8789 7879 2965 1444 4671 4743 9817 6066 8057
6996 9609 2884 4601 7287 3432 4145 8858 6857 8624 4531 6579 1615 2894 4521 3274 5237 1093 3317 9289
7117 1850 3210 8010 2512 1394 4718 9332 5593 4118 4995 3994 5063 9426 1709 5128 4997 9287 1907 9068
4258 7328 6490 2603 5333 5093 8070 2116 8489 1994 7098 7409 1463 4268 9509 2358 1192 2460 5031 6292
4911 1192 1012 2494 5276 8981 3540 3306 8869 6678 7879 7526 8847 6270 7653 3109 6955 9760 8520 8673
6328 7277 7818 3285 9398 4929 4639 1617 4023 1051 9320 4955 6580 6481 3824 9611 2863 6492 6281 6203

思路

方法1:最简单的,由于是填空题,且数据大小只有30×20,可以直接模拟一个5×5的小正方形,依次计算最值即可。(类似CNN卷积核提取特征)
方法2:可对方法1进行时间优化,利用前缀和思想。

代码

import java.util.Scanner;
public class t4_最大子矩阵 {public static int[][] grid = new int[35][25];public static int[][] s = new int[35][25];public static void main(String[] args) {// TODO Auto-generated method stub// Scanner scanner = new Scanner(System.in);// int n = 30;// int m = 20;// int k = 5;// for (int i = 1; i <= n; i++) {// 	for (int j = 1; j <= m; j++) {// 		grid[i][j] = scanner.nextInt();// 	}// }// for (int i = 1; i <= n; i++) {// 	for (int j = 1; j <= m; j++) {// 		s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + grid[i][j];// 	}// }// int maxv = Integer.MIN_VALUE;// for (int i = 1; i <= n - 5 + 1; i++) {// 	for (int j = 1; j <= m - 5 + 1; j++) {// 		int tmp = s[i + k - 1][j + k - 1] - s[i + k - 1][j - 1] - s[i - 1][j + k - 1] + s[i - 1][j - 1];// 		maxv = Math.max(maxv, tmp);// 	}// }// System.out.println(maxv); System.out.println(171248); }
}

🧡🧡t5_最少步数🧡🧡

在这里插入图片描述

思路

咋一看跟t2_台阶方案好像,实则就是数学问题。要求最小步数,保证每一步尽量跨最大一步(3)即可,直到剩下的台阶用1或2补足就好了。

代码

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);int n = scanner.nextInt();int ans = 0;if (n % 3 == 0)ans = n / 3;elseans = n / 3 + 1;System.out.println(ans);}
}

🧡🧡t6_最大极小值与最小极大值🧡🧡

在这里插入图片描述

思路

枚举

代码

import java.util.Scanner;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] arr = new int[n + 1];for (int i = 1; i <= n; i++) {arr[i] = scanner.nextInt();}int minv = Integer.MAX_VALUE;int maxv = Integer.MIN_VALUE;for (int i = 1; i <= n - 1; i++) {if (arr[i] < arr[i - 1] && arr[i] < arr[i + 1])maxv = Math.max(maxv, arr[i]);if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1])minv = Math.min(minv, arr[i]);}System.out.println(maxv + " " + minv);}
}

🧡🧡t7_最大的Y🧡🧡

在这里插入图片描述

7 7
1000001
0100010
0010100
0001AAA
00010A0
00010A0
00010A0
3

思路

遍历每个坐标点,依次在该点上模拟三个方向,计算三个方向各自所能到达的距离,取它们的最小值,即为该点的“Y的长度”。最后,取所有点的“Y的长度”的最大值即为答案。

代码

import java.util.Scanner;
public class Main {public static char[][] grid = new char[1005][1005];public static int n, m;public static int check(int x, int y, char ch) {// 左上45度int tx = x - 1;int ty = y - 1;int cnt1 = 0;while (tx >= 1 && tx <= n && ty >= 1 && ty <= m && grid[tx][ty] == ch) {cnt1++;tx--;ty--;}
//		System.out.println(tx + " " + ty);// 右上45度tx = x - 1;ty = y + 1;int cnt2 = 0;while (tx >= 1 && tx <= n && ty >= 1 && ty <= m && grid[tx][ty] == ch) {cnt2++;tx--;ty++;}// 正下4tx = x + 1;ty = y;int cnt3 = 0;while (tx >= 1 && tx <= n && ty >= 1 && ty <= m && grid[tx][ty] == ch) {cnt3++;tx++;}return Math.min(Math.min(cnt1, cnt2), cnt3);}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);n = scanner.nextInt();m = scanner.nextInt();for (int i = 1; i <= n; i++) {String str = scanner.next();for (int j = 1; j <= m; j++) {grid[i][j] = str.charAt(j - 1);}}int ans = Integer.MIN_VALUE;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {ans = Math.max(ans, check(i, j, grid[i][j]));}}System.out.println(ans);}
}

🧡🧡t8_左右相同🧡🧡

在这里插入图片描述

思路

枚举模拟

代码

import java.util.Scanner;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);String s = sc.next();int ans = 0;int cnt1 = 0;int cnt2 = 0;for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);if (ch == 'L')cnt1++;elsecnt2++;if (cnt1 == cnt2)ans++;}System.out.println(ans);}
}

🧡🧡t9_求余数🧡🧡

在这里插入图片描述

思路

跟第二期模拟赛的第1道题差不多,也是大数问题,这里直接采用BigInteger来处理了。

代码

import java.math.BigInteger;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubBigInteger n1 = new BigInteger("12345678901234567890123456789012345678901234567890");BigInteger n2 = new BigInteger("2023");BigInteger res = n1.mod(n2);System.out.println(res.toString());}
}

🧡🧡t10_区间计数🧡🧡

在这里插入图片描述

思路

枚举

代码

public class Main {public static void main(String[] args) {// TODO Auto-generated method stubint ans = 0;for (int l = 0; l <= 100; l++) {for (int r = l; r <= 100; r++) {if (r - l >= 10)ans++;}}System.out.println(ans);}
}

🧡🧡t11_数位和🧡🧡

在这里插入图片描述

思路

枚举模拟

代码

public class Main {public static boolean isPrime(int n) {if (n <= 1)return false;if (n == 2)return true;for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0)return false;}return true;}public static void main(String[] args) {// TODO Auto-generated method stubint ans = 0;for (int i = 1; i <= 1000000; i++) {if (isPrime(i)) {int x = i;int tmp = 0;while (x > 0) {tmp += x % 10;x /= 10;}if (tmp == 23)ans++;}}System.out.println(ans);}
}

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

详解MySQL的MVCC(ReadView部分解析C++源码)

文章目录 1. 什么是MVCC2. MVCC核心组成&#xff08;三大件&#xff09;2.1 MVCC为什么需要三大件 3. 隐藏字段4. undo log4.1 模拟版本链数据形成过程 5. Read View5.1 m_ids5.2 m_creator_trx_id5.3 m_low_limit_id5.4 m_up_limit_id5.5 可见性分析算法 6. MVCC流程模拟6.1 R…

flutter环境搭建实践

Dart Dart 是一种客户端和服务器端的编程语言&#xff0c;最早由 Google 提出。它被设计用于构建高性能、高度可伸缩和可靠的应用程序。Dart 可以编译成本地代码或者在虚拟机中直接运行。在移动应用开发中&#xff0c;Dart 主要用于开发 Flutter 应用。 Flutter 和 Dart 的关…

二叉平衡树和红黑树的代码实现(红黑树以后补充,目前代码也没怎么明白)

二叉平衡树 二叉平衡树节点定义 template<class K , class V> struct AVLTreeNode {AVLTreeNode<K, V>* _left;AVLTreeNode<K, V>* _right;AVLTreeNode<K, V>* _parent;pair<K, V> _kv;int _bf; //balance factorAVLTreeNode(const pair<K,…

ttkbootstrap界面美化系列之简介(一)

一&#xff1a;前言 相信很多同学用Python进行界面设计第一个用到的就是Tkinter&#xff0c;Tkinter是Python的一个标准接口&#xff0c;用于创建GUI&#xff08;图形用户界面&#xff09;应用程序。它是Tcl/Tk的封装&#xff0c;Tkinter的名称来源于Tk技术工具包(Tool…

openGauss学习笔记-244 openGauss性能调优-SQL调优-典型SQL调优点-统计信息调优

文章目录 openGauss学习笔记-244 openGauss性能调优-SQL调优-典型SQL调优点-统计信息调优244.1 统计信息调优244.1.1 统计信息调优介绍244.1.2 实例分析&#xff1a;未收集统计信息导致查询性能差 openGauss学习笔记-244 openGauss性能调优-SQL调优-典型SQL调优点-统计信息调优…

亚马逊云科技Glue

Glue 最重要的部分&#xff0c; ETL&#xff1a;用于从 A 点&#xff08;我们的源数据&#xff09;提取、转换和加载数据到 B 点&#xff08;目标文件或数据存储库&#xff09;。 AWS Glue 会为您执行大量此类工作。 转换通常是更繁重的工作&#xff0c;需要从各种来源进行组合…

QML 添加扩展插件QQmlExtensionPlugin

一.添加QQmlExtensionPlugin方式步骤 目的&#xff1a;界面跨软件复用。 项目目录结构如下图&#xff1a; 1.首先&#xff0c;创建一个继承自QQmlExtensionPlugin的类&#xff0c;例如MyPlugin。在这个类中&#xff0c;实现registerTypes()和initializeEngine()方法。 #ifndef …

Transformer self-attention源码及原理理解

自注意力计算公式&#xff1a; 在公式(1)中Q(query)是输入一个序列中的一个token&#xff0c;K(key)代表序列中所有token的特征。 可以得到当前token与序列中其他token的相关性。在论文原文中512&#xff0c;表示每个token用512维特征表示&#xff08;序列符号的embedding长度…

子组件自定义事件$emit实现新页面弹窗关闭之后父界面刷新

文章目录 需求弹窗关闭之后父界面刷新展示最新数据 实现方案AVUE 大文本默认展开slotVUE 自定义事件实现 父界面刷新那么如何用呢? 思路核心代码1. 事件定义2. 帕斯卡命名组件且在父组件中引入以及注册3. 子组件被引用与父事件监听4.父组件回调函数 5.按钮弹窗事件 需求 弹窗…

【图像分割】使用Otsu 算法及迭代计算最佳全局阈值估计并实现图像分割(代码实现与分析)

本实验要求理解全局阈值分割的概念&#xff0c;并实现文本图像分割。需要大家深入理解Ostu 算法的实现过程及其迭代原理&#xff0c;同时通过学习使用Otsu 算法及其迭代&#xff0c;实践图像分割技术在文本图像处理中的应用。 以下将从实验原理、实验实现、实验结果分析三部分对…

短剧分销怎么赚钱的?保姆级教程助你短剧cps推广赚大钱

短剧分销怎么赚钱的&#xff1f;小白也能月入过万/“蜂小推“保姆级教程&#xff0c;助你短剧分销赚大钱&#xff01; 相信大家或多或少都在某些群里看到一些“霸道总裁爱上职场小菜鸟...”“这类链接&#xff0c;无利不起早&#xff0c;为什么会有那么多在群里分享这些狗血视…

紧抓需求,把脉市场,方太高端全场景厨电创造厨居新范式

撰稿 | 多客 来源 | 贝多财经 随着“中国制造”向“中国智造”方向转变&#xff0c;厨电不再是单一的工具设施&#xff0c;而是现代化厨居生活的映射&#xff0c;承担着沟通连接人、家庭与社会的桥梁作用。烹饪全场景下智能高效技术、整体美学设计、品类联动能力成为厨电品牌…

【机器学习系列】M3DM工业缺陷检测部署与训练

一.基础资料 1.Git 地址 地址 2.issues issues 3.参考 参考 csdn 二.服务器信息 1.GPU 服务器 GPU 服务器自带 CUDA 安装(前提是需要勾选上)CUDA 需要选择大于 11.3 的版本登录服务器后会自动安装 GPU 驱动 2.CUDA 安装 GPU 服务器自带 CUDA CUDA 版本查看 3.登录信…

从政府工作报告探计算机行业发展——探索计算机行业发展蓝图

目录 前言 一、政策导向与行业发展 &#xff08;一&#xff09;政策导向的影响 &#xff08;二&#xff09;企业如何把握政策机遇推动创新发展 二、技术创新与产业升级 三、数字经济与数字化转型 四、国际合作与竞争态势 五、行业人才培养与科技创新 &#xff08;一&a…

【linux】搜索所有目录和子目录下的包含.git的文件并删除

一、linux命令搜索所有目录和子目录下的包含.git的文件 在Linux系统中&#xff0c;要搜索所有目录和子目录下的包含.git的文件&#xff0c;可以使用find命令。find命令允许指定路径、表达式和操作来查找文件。 以下是使用find命令搜索包含.git的文件的方法&#xff1a; 1. 基…

ideaSSM社区二手交易平台C2C模式开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea ssm 社区二手交易平台系统是一套完善的完整信息管理系统&#xff0c;结合SSM框架完成本系统SpringMVC spring mybatis &#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码…

Ubuntu 22.04 Nvidia Audio2Face Error:Failed to build TensorRT engine

背景 1.在Ubuntu22.04上安装Audio2Face后启动&#xff0c;嘴形不会实时同步。控制台显示如【图一】&#xff1a; 【图一】 2.log日志如下: Error: Error during running command: [‘/home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2fac…

全国农产品价格分析预测可视化系统设计与实现

全国农产品价格分析预测可视化系统设计与实现 【摘要】在当今信息化社会&#xff0c;数据的可视化已成为决策和分析的重要工具。尤其是在农业领域&#xff0c;了解和预测农产品价格趋势对于农民、政府和相关企业都至关重要。为了满足这一需求&#xff0c;设计并实现了全国农产…

C++中的using关键字

1. 类型别名 using关键字可以用来为类型创建一个新的名字&#xff0c;这在代码的可读性和维护性方面非常有帮助。 // 定义类型别名 using IntPtr int*;// 使用 int value 5; IntPtr ptr &value;2. 命名空间别名 如果你正在使用一个非常长的命名空间&#xff0c;可以使…

浅谈HTTP 和 HTTPS (中间人问题)

前言 由于之前的文章已经介绍过了HTTP , 这篇文章介绍 HTTPS 相对于 HTTP 做出的改进 开门见山: HTTPS 是对 HTTP 的加强版 主要是对一些关键信息 进行了加密 一.两种加密方式 1.对称加密 公钥 明文 密文 密文 公钥 明文 2.非对称加密 举个例子就好比 小区邮箱 提供一…