蓝桥杯c++
文章平均质量分 65
c++算法讲解
DaveVV
Java c++
展开
-
蓝桥杯:真题讲解3(C++版)附带解析
乘积出现尾零,肯定是5和偶数相乘得到的,每出现一个10,就应从乘数中可以提出一个2、一个5。所以我们把每个数的都分解成乘积的形式 ,统计出2和5的数量,然后取较小那个。分析: --画出报纸长的样子,如果我们在上面多画一张报纸,那么就符合题意的5,6,11,12。观察这张图:观察3,4,9,10这一张报纸,怎么求出这份报纸一共多少页呢?由上可知,长度为k的素数等差数列的最小公差为小于k的所有素数之积。10以内的素数为2,3,5,7,所以2*3*5*7=210。分析:因为是填空题,直接暴力求解即可。原创 2024-02-29 13:03:17 · 798 阅读 · 0 评论 -
蓝桥杯:真题讲解2(C++版)附带解析
我们还有一个问题,就是数列的排序是按照蛇形来排序的,那我们怎么处理有反向的数列呢,我们经过短暂的思考,立马给出了解决方案,先按照正常的方式来求,到了最后,我们发现。分析:这题涉及到平年和闰年的知识,如果我们要解这题,首先要知道每月有多少天,其实也就是看2月份的天数,其它月份的天数都是一样的,只有2月有点不同。分析:找规律即可,第零层到第一层+1,第一层到第二层+2,第二层到第三层加+3,第三层到第四层+4,以此类推。平年的2月有28天,闰年2月有29天,搞定如何判断平年和闰年,这题也就好解了。原创 2024-02-24 10:13:23 · 1204 阅读 · 0 评论 -
蓝桥杯:真题讲解1(C++版)附带解析
用于计算计算x的y次幂:double pow( double base, double exp );=0),能够整除,b就是a的约数。来自:2020年十一届省赛大学C组真题(共9道题)来自:2019年十届省赛大学B组真题(共10道题)来自:2015年六届省赛大学C组真题(共6道题)来自:2015年六届省赛大学C组真题(共6道题)来自:2015年六届省赛大学B组真题(共6道题)分析:利用取余和除法判断每一位是否符合即可。分析:直接暴力求解,使用C++的api。分析:按照题意模拟即可。分析:根据题意模拟即可。原创 2024-02-22 11:17:57 · 1008 阅读 · 0 评论 -
蓝桥杯:时间显示、门牌制作、蛇形填空讲解(C++)
d ---输出带符号的十进制整数,正数的符号不输出。(3)第三行,第三列 13 = 2*2 + 3*3;(1)第一行,第一列 1 = 0*0 + 1*1;(2)第二行,第二列 5 = 1*1 + 2*2;来自:2021年十二届省赛大学B组真题(共10道题)来自:2020年十一届省赛大学B组真题(共10道题)%02d ---输出数据占2列,不足2列,要补0。所以第20行20列 19*19 + 20*20。分析:不断地取每一位,判断是不是2就行了。%5d ---指定输出数据占5列。原创 2024-02-21 12:32:03 · 735 阅读 · 0 评论 -
蓝桥杯:C++素数、进制转换
埃氏筛选的主要思想是先把n以内的合数全部找出来,合数排除以后,其余的就全部是素数了,运用的方法是以空间换时间。若 2 都不能除尽,还要试 4, 6, 8, …若 3 都不能除尽,还要试 9, 15, 21, …我们只需要学会十进制与与任意进制之间相互转换就够了,任何题型都能够套这个公式。一个大于1的自然数,除了1和它自身外,不能被其他自然数。否则称为合数(规定1既不是质数也不是合数)。可以看到是正常输出的,结果也是正确的。也就是找某个区间内有多少个素数。下面给个例题(附带讲解)原创 2024-02-20 10:32:13 · 844 阅读 · 0 评论 -
蓝桥杯:C++贪心算法、字符串函数、朴素模式匹配算法、KMP算法
发现第1个字符就不同,即P[0]≠S[0],这种情况称为“失配”,后面的P[1]、P[2]就不用比较了,如图9.1所示。第1轮匹配:比较S[0]~S[2]=aaa和P[0]~P[2]=aab,前两个字符相同,第3个字符不同,即S[2]≠P[2],共比较了3次。发现P的第1个字符与S的第2个字符不同,即P[0]≠S[1],后面的P[1]、P[2]就不用比较了,如图9.2所示。最简单的是朴素模式匹配算法,这是一种暴力法,从S的第1个字符开始,逐个匹配P的每个字符,如果发现不同,就从S的下一个字符重新开始匹配。原创 2024-02-19 12:57:42 · 1868 阅读 · 0 评论 -
蓝桥杯:C++二叉树
二叉树的第1层是一个结点,称为根,它最多有两个子结点,分别是左子结点、右子结点,以它们为根的子树称为左子树、右子树。二叉树上的每个结点,都是按照这个规则逐层往下构建出来的。图3.4 二叉树的形态满二叉树和完全二叉树是平衡的二叉树,因为每个结点的左右子树的数量都差不多。“链状”二叉树是不平衡的二叉树。只有在平衡的二叉树上才能进行高效的操作,而不平衡的二叉树退化成了线性结构,和低效的链表没多大区别。原创 2024-02-18 12:37:17 · 838 阅读 · 0 评论 -
蓝桥杯:C++队列、优先队列、链表
通过调用list容器的成员函数begin()得到一个指向容器起始位置的iterator,可以调用list容器的 end() 函数来得到list末端下一位置,相当于:int a[n]中的第n+1个位置a[n],实际上是不存在的,不能访问,经常作为循环结束判断结束条件使用。如果调用resize(n)将list的长度改为只容纳n个元素,超出的元素将被删除,如果需要扩展那么调用默认构造函数T()将元素加到list末端。原创 2024-02-17 20:33:34 · 1197 阅读 · 0 评论 -
蓝桥杯:C++模运算、快速幂
如果一个数太大,无法直接输出,或者不需要直接输出,则可以对它取模,缩小数值再输出。gcd(a, b)×lcm(a, b) = a×b,即lcm(a, b) = a×b/gcd(a, b) =a/gcd(a, b) ×b。取模操作的加、减、乘满足分配律,注意此时仍要求a+b、a−b、a×b为正数,如果有负数,请小心处理。放在取模题中,这也是一道取模的简单题,利用取模操作把计算复杂度降为O(1)。这题用暴力法很好解,但是只能拿到60的测试数据,差不多对一半吧。库函数__gcd()可能会返回负数,见下面的例子。原创 2024-02-17 13:36:23 · 1257 阅读 · 0 评论 -
蓝桥杯:C++二分算法
在基本算法中,二分法的应用非常广泛,它是一种思路简单、编程容易、效率极高的算法。蓝桥杯软件类大赛中需要应用二分法的题目很常见。二分法有整数二分和实数二分两种应用场景。原创 2024-02-16 19:26:00 · 773 阅读 · 0 评论 -
蓝桥杯:C++排列与组合
排列是暴力枚举时的常见操作。有以下两种情况。C++的 next_permutation()是全排列函数,只能输出序列中所有元素的全排列。本节将给出手写排列和组合的代码。因为在很多场合中不能使用系统自带的排列函数,所以需要自己编写。原创 2024-02-15 15:02:09 · 1177 阅读 · 0 评论 -
蓝桥杯:C++排序
在我们进行包括scanf等的输入函数使用时,其实用户在cmd中的输入实际是存放于缓冲区当中,当用户键入回车那一瞬间,之前输入的数据才会被存进去,而这里无论是单个字符还是字符串,我们都知道scanf的返回值呢是表示成功接受到的对象的个数,那这里如果遇到特殊情况,比如缓冲区文件流满等问题,那么scanf将如何处理呢?不过,在算法竞赛中,一般不需要手动编写这些排序算法,而是直接使用库函数,例如C++的sort()函数。题目分析:本题是简单题,解题思路是读取所有数字,先排序,然后查找丢失的数字和重复的数字。原创 2024-02-15 11:48:02 · 1506 阅读 · 0 评论 -
蓝桥杯:01串的熵讲解(C++)
本题来自于:2023年十四届省赛大学B组真题(共10道题)原创 2024-02-14 19:42:08 · 1519 阅读 · 0 评论 -
蓝桥杯:日期统计讲解(C++)
本题来自于:2023年十四届省赛大学B组真题。原创 2024-02-14 17:41:02 · 1019 阅读 · 0 评论 -
蓝桥杯:C++数组
数组是最简单的数据结构,虽然数组简单,但是在算法竞赛中至关重要,因为其他数据结构都可以用数组来模拟,即“物理存储上是数组,逻辑上是其他数据结构”。用数组模拟其他数据结构,虽然不是工程项目中的正规做法,但是非常适合算法竞赛,因为这样编写代码快、不易出错。C++的数据类型中,最大的long long类型,可以声明64位的二进制数变量。此题的关键是处理大数的输入,因为整数a和b太大,无法将其直接赋值给C++的变量,所以不能按数字读入,只能按字符读入。【题目描述】输入两个整数a和b,输出这两个整数的和。原创 2024-02-14 13:48:25 · 824 阅读 · 0 评论 -
蓝桥杯题目解析 --汉诺塔(含C++栈的知识)
该题在蓝桥杯基础数据结构篇,进入后搜索题号1512。原创 2024-02-13 19:57:08 · 570 阅读 · 0 评论 -
蓝桥杯题目解析 --矩形切割
5*3 切一刀最大的,肯定是3*3,切完后只剩2*3,切一刀最大的,肯定是2*2,切完后只剩2*1,切一刀最大的,肯定是1*1,切完后只剩1*1,切不了了。(这里注意我写的i*j的格式)。原创 2024-01-24 18:00:32 · 481 阅读 · 0 评论