第十五届蓝桥杯模拟赛 第三期 (C++)

第二次做蓝桥模拟赛的博客记录,可能有很多不足的地方,如果大佬有更好的思路或者本文中出现错误,欢迎分享思路或者提出意见

题目A

        请问 2023 有多少个约数?即有多少个正整数,使得 2023 是这个正整数的整数倍。

答案:6,试除法暴力枚举即可


题目B

  请问有多少组整数对 l, r 满足:
  1. l 和 r 都介于 0 (含)到 100 (含)之间;
  2. r - l >= 10。

答案:4186,简单的双循环枚举


题目C

  只能被 1 和本身整除的数称为质数。
  请问在 1 (含)到 1000000 (含)中,有多少个质数的各个数位上的数字之和为 23 。
  提示:599 就是这样一个质数,各个数位上的数字之和为 5+9+9=23 。

答案:5503,循环内套一个判定质数的函数就行了


题目D

  求 12345678901234567890123456789012345678901234567890 除以 2023 的余数。

答案:344,同余定理或者高精度除法都OK


题目E

        对于一个 n 行 m 列的矩阵,它的一个 k 行 k 列的子矩阵是指由矩阵中的连续 k 行、连续 k 列组成的矩阵。
  子矩阵的和是指子矩阵中所有元素的和。现在,小蓝对于一个矩阵中的子矩阵中最大的子矩阵的和很感兴趣。
  例如,对于如下 3 行 4 列的矩阵,2 行 2 列的子矩阵的和的最大值是 8,对应的子矩阵为由最后两行最后两列组成的子矩阵。

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

现在,小蓝有一个 30 行 20 列的大矩阵,如下所示,请问它的 5 行 5 列的子矩阵的和的最大值是多少?

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 

 思路:二维前缀和找最大子矩阵板子,核心代码如下

    for (int i = 1; i <= 30; ++i) {for (int j = 1; j <= 20; ++j) {cin >> x;sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + x;}}for (int i = 5; i <= 30; ++i) {for (int j = 5; j <= 20; ++j) {res = max(res, sum[i][j] - sum[i][j - 5] - sum[i - 5][j] + sum[i - 5][j - 5]);}}

答案:171248


题目F

        小蓝要上一个楼梯,楼梯共有 n 级台阶(即小蓝总共要走 n 级)。小蓝每一步可以走 1 级、2 级或 3 级台阶。
  请问小蓝至少要多少步才能上到楼梯顶端?

#include<iostream>
using namepspace std;int main(){int n;cin >> n;n = (n % 3 == 0) ? (n / 3) : (n / 3 + 1);cout << n;
}

题目G

        给定一个仅包含数字字符的字符串,请统计一下这个字符串中出现了多少个值为奇数的数位。

#include<iostream>
using namepspace std;int main(){string s;cin >> s;int res{};for (char c : s) {if ((c - '0') % 2 == 1) res++;}cout << res;
}

这俩题太简单了咱们过咯


题目H

        对于一个序列 a[1], a[2], …, a[n],如果 a[i] 满足 a[i]<a[i-1] 且 a[i]<a[i+1],则称 a[i] 是一个极小值,如果如果 a[i] 满足 a[i]>a[i-1] 且 a[i]>a[i+1],则称 a[i] 是一个极大值。
  给定一个序列,请找到极小值中最大的和极大值中最小的。

#include <iostream>
#include <vector>
using namespace std;int main()
{int n;cin >> n;vector<int> a(n);for (int i = 0;i<n;i++) cin >> a[i];int max_ = 0,min_ = 1e5 + 10;for (int i = 1; i < n - 1; ++i) {if (a[i] < a[i - 1] && a[i] < a[i + 1] && a[i] > max_) max_ = a[i];if (a[i] > a[i - 1] && a[i] > a[i + 1] && a[i] < min_) min_ = a[i];}return 0;
}

题目I

        对于一个字符矩阵,其中的一些字符构成字母 Y 是指存在一个中间字符,从这个中间字符向下、向左上(45度)、向右上(45度)的字符都与中间的字符相同。
  字母 Y 的长度指同时向 3 个方向的相同字母延伸的最大距离。
  例如,下图中所有的 1 组成一个字母 Y,长度为 3。
  又如,下图中以第 5 行第 6 列为中心也构成一个字母 Y (由字符 A 构成),长度为 1 
  再如,下图中以第 4 行第 3 列为中心也构成一个字母 Y (由字符 0 构成),长度为 2 9

    1000001
    0100010
    0010100
    0001AAA
    00010A0
    00010A0
    00010A0

        给定一个字符矩阵,请找出能构成字母 Y 的最大长度,如果无法构成字母 Y,请输出 0 

#include <iostream>
using namespace std;const int N = 1e3 + 10;
char a[N][N];
int m, n, res;int func(int x, int y) {int cnt = 0;for (int i = 1;; i++) {if (x - i < 0 || y - i < 0 || x + i >= n || y + i >= m) {return cnt;}if (a[x][y] == a[x - i][y - i] && a[x][y] == a[x - i][y + i] && a[x][y] == a[x + i][y]) {cnt++;} else {return cnt;}}
}int main() {cin >> m >> n;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> a[i][j];}}for (int i = 1; i < n - 1; i++) {for (int j = 1; j < m - 1; j++) {res = max(func(i, j), res);}}cout << res;return 0;
}

 三个方向同时判断,记录长度


题目J

        小蓝要上一个楼梯,楼梯共有 n 级台阶(即小蓝总共要走 n 级)。小蓝每一步可以走 a 级、b 级或 c 级台阶。
  请问小蓝总共有多少种方案能正好走到楼梯顶端?

 经典的台阶问题,小变种了一下下,理论上算线性dp

#include <iostream>
#include <vector>
using namespace std;const int mod = 1e9 + 7;int main()
{int n, a, b, c;cin >> n >> a >> b >> c;vector<int> dp(n + 1);dp[0] = 1;for (int i = a; i <= n; i++) {dp[i] = (dp[i] + dp[i - a]) % mod;if (i >= b) dp[i] = (dp[i] + dp[i - b]) % mod;if (i >= c) dp[i] = (dp[i] + dp[i - c]) % mod;}cout << dp[n];return 0;
}

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

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

相关文章

Linux telnet命令教程:远程控制工具(附实例详解和注意事项)

Linux telnet命令介绍 telnet&#xff08;Teletype Network&#xff09;是一种网络协议&#xff0c;用于在远程主机和本地计算机之间建立文本式连接。它最初于1969年开发&#xff0c;是Internet的早期协议之一。telnet命令使用TCP/IP网络通过端口23建立连接&#xff0c;提供了…

MySQL B树 和B+数据的区别

MySQL B树 和B数据的区别 树分类&#xff1a;二叉树完全二叉树满二叉树堆红黑树 B树B树 首先我们搞清楚数据结构中的 树这个概念 树 分类&#xff1a; 二叉树 限定每个节点的子节点最多只有2个子节点&#xff0c;且有左右之分。完全二叉树 满二叉树 堆 红黑树 B树 B树 …

上位机图像处理和嵌入式模块部署(qmacvisual之ROI设定)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 ROI&#xff0c;全称是region of interest&#xff0c;也就是感兴趣区域。这里面一般分成两种情况&#xff0c;一种是所有的算法都依赖于这个ROI&a…

谷粒商城——缓存的读写一致性

1. 对于实时性要求很强的数据&#xff0c;如果修改完数据库&#xff0c;需要保证缓存中的数据也更新为相应的最新值。此时需要在更新数据库之前加上写锁&#xff0c;在更新/删除完缓存后才释放写锁。 伪代码如下&#xff1a; lock.writeLock().lock(); updateDB(); updateCac…

Jenkins中使用Generic Webhook Trigger插件实现持续集成

项目环境 宝塔Linux面板DockerJenkinsgitee 目的 实现每次push推送dev分支到gitee上&#xff0c;Jenkins自动构建项目&#xff1b;push其它分支时&#xff0c;不运行。 实现方法 1.在Jenkins上安装Generic Webhook Trigger插件 在“系统设置–插件管理–可选插件”界面搜…

第390场 LeetCode 周赛题解

A 每个字符最多出现两次的最长子字符串 滑动窗口&#xff1a;枚举窗口的左边界&#xff0c;尽可能右移窗口的右边界。 (当然也可以暴力枚举) class Solution { public:int maximumLengthSubstring(string s) {vector<int> cnt(26);int res 0;for (int l 0, r -1, n s…

构建以太网交换网络——(生成树实验)

实验介绍 关于本实验 以太网交换网络中为了进行链路备份&#xff0c;提高网络可靠性&#xff0c;通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路&#xff0c;引发广播风暴以及MAC地址表不稳定等故障现象&#xff0c;从而导致用户通信质量较差&#xff0c;甚至…

【LeetCode-45.跳跃游戏】

题目详情&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返…

C语言 数组指针 指针数组

指针数组 什么是指针数组&#xff0c;他是一个数组&#xff0c;数组的元素是指针。但是指针也有多种数据类型&#xff0c;有数组指针、函数指针、整形指针、字符串指针。 现在我就使用函数指针来写代码&#xff0c;也就是函数指针数组的应用代码&#xff1a; #include <s…

Debezium日常分享系列之:设置MySQL数据库以支持数据实时采集

Debezium日常分享系列之&#xff1a;设置MySQL数据库以支持数据实时采集 一、创建用户二、启用二进制日志三、启用 GTID四、配置会话超时五、启用查询日志事件六、验证二进制日志行值选项七、Debezium技术总结 在安装和运行 Debezium 连接器之前&#xff0c;需要执行一些 MySQL…

Vscode按键占用问题解决

Vscode按键占用 在使用vscode的过程中&#xff0c;官方按键 Ctrl . 按键可以提示修复代码中的问题&#xff0c;但是发现按了没有反应。 解决问题 首先确认vscode中是否设置了这个按键&#xff0c;默认设置了的系统输入法中是否有按键冲突了&#xff0c;打开输入法设置检查 …

es同义词配置规则

同义词配置有两种: 1,a>b: 通俗的来讲,就是尽管用户输入的是a,但是es在查询的是会转成b去搜索,">"左边的词全部会被右边的词替换。 2,a,b:通俗的来讲,就是不管用户输入的是a还是b,es在查询的是用a,或者b搜索.比如 保温杯,杯子,用户输入的是"保温杯"…

学习java第二十二天

IOC 容器具有依赖注入功能的容器&#xff0c;它可以创建对象&#xff0c;IOC 容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。通常new一个实例&#xff0c;控制权由程序员控制&#xff0c;而"控制反转"是指new实例工作不由程序员来做而是交给Sp…

DNS服务器的分布式架构和集中式架构的区别

DNS服务器是域名系统的核心组件之一&#xff0c;用于解析域名和IP地址之间的映射关系。DNS服务器的架构形式有分布式和集中式两种模式。下面德迅云安全给您介绍DNS服务器的分布式架构和集中式架构的区别。 DNS服务器的分布式架构和集中式架构有什么区别&#xff1f; 1.分布式架…

[iOS]GCD(一)

[iOS]GCD(一) 文章目录 [iOS]GCD(一)GCD的概要GCD的APIDispatch Queuedispatch_queue_createMain Dispatch_set_target_queuedispatch_afterDispatch Groupdispatch_barrier_asyncdispatch_applydispatch_applydispatch_suspend/dispatch_resumeDispatch Semaphoredispatch_onc…

MQ高级篇---消息可靠性

MQ的一些常见问题 后面内容基于springboot 2.3.9.RELEASE 消息可靠性 生产者确认机制 在publisher微服务中application.yml中添加 spring:rabbitmq:publisher-confirm-type: correlatedpublisher-returns: truetemplate:mandatory: true每个RabbitTemplate只能配置一个Return…

【计算机网络】启程

&#x1f4dd;本文介绍 本文为计算机网路系列的开始篇&#xff0c;会介绍一下使用的书籍和自己做的思维导图。 &#x1f44b;作者简介&#xff1a;一个正在积极探索的本科生 &#x1f4f1;联系方式&#xff1a;943641266(QQ) &#x1f6aa;Github地址&#xff1a;https://githu…

Rust下载安装、卸载、版本切换、创建项目(包含指定版本的)

先声名一下&#xff0c;下面所说的版本号为xxxxx-x86_64-unknown-linux-gnu中xxxxx的部分。 下载安装 下载最新版本的Rust&#xff1a; curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh info: downloading installer重启shell 或者 按照提示 执行命令让环境变…

esp8266通讯与控制的思考

一、场景 定时将小灯的开关状态上传给公网服务器。公网服务器充当服务端角色&#xff0c;接收ESP8266发送的信息&#xff08;将小灯或温度传感器信息记录到MySql数据库中&#xff09;&#xff0c;并根据需要生成JSON指令来控制小灯或温度器的开关状态&#xff08;1表示高电平&…

每日一练:LeeCode-561、 数组拆分【数组+排序】

给定长度为 2n 的整数数组 nums &#xff0c;你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) &#xff0c;使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1&#xff1a; 输入&#xff1a;nums [1,4,3,2] 输出&#xff1a;4 解释…