![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯备考
文章平均质量分 57
AC__dream
道阻且长,行则将至;行而不辍,未来可期!
展开
-
(蓝桥杯真题)最少砝码(贪心)
分析:这道题是利用贪心的思想求解的,原创 2023-03-30 22:17:19 · 35 阅读 · 0 评论 -
(蓝桥真题)分果果(动态规划)
(蓝桥真题)分果果(动态规划)原创 2023-03-09 21:45:52 · 2307 阅读 · 1 评论 -
(蓝桥真题)剪格子(搜索+剪枝)
(蓝桥真题)剪格子(搜索+剪枝)原创 2023-03-09 11:07:58 · 543 阅读 · 0 评论 -
(蓝桥真题)扫描游戏(计算几何+线段树二分)
(蓝桥真题)扫描游戏(计算几何+线段树二分)原创 2023-03-08 12:01:33 · 1380 阅读 · 1 评论 -
(蓝桥真题)技能升级(二分+思维)
(蓝桥真题)技能升级(二分+思维)原创 2023-03-06 09:48:03 · 637 阅读 · 2 评论 -
(蓝桥真题)异或数列(博弈)
(蓝桥真题)异或数列(博弈)原创 2023-03-05 20:24:54 · 393 阅读 · 0 评论 -
(蓝桥真题)推导部分和(图论+并查集+bfs/带权并查集)
蓝桥真题原创 2023-03-04 19:30:21 · 290 阅读 · 0 评论 -
(蓝桥真题)最长不下降子序列(权值线段树)
蓝桥真题原创 2023-03-04 17:22:31 · 1807 阅读 · 1 评论 -
(蓝桥真题)青蛙过河(思维+双指针/二分)
蓝桥真题原创 2023-03-03 10:56:34 · 254 阅读 · 0 评论 -
(蓝桥真题)爬树的甲壳虫(概率DP)
蓝桥真题原创 2023-03-03 09:09:16 · 1342 阅读 · 2 评论 -
(蓝桥真题)左孩子右兄弟(树形DP)
蓝桥真题原创 2023-03-02 22:31:16 · 156 阅读 · 0 评论 -
(蓝桥真题)选数异或(思维+动态规划)
蓝桥真题原创 2023-03-02 21:42:31 · 616 阅读 · 0 评论 -
(蓝桥真题) 糖果(IDA*+状压搜索)
蓝桥真题原创 2023-03-01 20:00:00 · 148 阅读 · 1 评论 -
2068. 整数拼接(蓝桥真题)
蓝桥真题原创 2023-02-28 22:08:13 · 169 阅读 · 0 评论 -
523.组合数问题(蓝桥真题)
蓝桥真题原创 2023-02-28 14:21:11 · 17 阅读 · 0 评论 -
1171.距离(蓝桥真题)
蓝桥真题原创 2023-02-28 12:55:18 · 113 阅读 · 0 评论 -
1213. 斐波那契(蓝桥真题)
蓝桥杯真题原创 2023-02-28 08:52:02 · 92 阅读 · 0 评论 -
四平方和(第七届蓝桥杯省赛C++A/B组)
蓝桥杯真题原创 2023-02-27 09:58:01 · 122 阅读 · 0 评论 -
(蓝桥杯省赛)最少砝码(数学+构造)
蓝桥杯原创 2022-06-13 23:03:15 · 136 阅读 · 0 评论 -
(第十届蓝桥杯省赛)糖果(动态规划)
蓝桥杯真题原创 2022-06-02 12:23:05 · 52 阅读 · 0 评论 -
(第九届蓝桥杯省赛)耐摔指数(动态规划)
耐摔指数原创 2022-05-31 22:20:59 · 75 阅读 · 0 评论 -
(第十届蓝桥杯国赛)最优包含(动态规划)
题目:这道题目类似于求最长公共子序列的题目,看了数据范围基本上就能判断出来这道题目的复杂度是o(n^2)的,下面我直接进行动态规划的分析:设f[i][j]表示用s串的前i个字符包含t串的前j个字符的最少修改次数,我们先考虑s串的第i个字符等于t串的第j个字符的情况,那么就有f[i][j]=f[i-1][j-1],因为我们不需要考虑t串的第j个字符的匹配情况,只需要考虑用s串的前i-1个字符和t串的前j-1个字符的匹配花费即可,默认s串的第i个字符和t串的第j个字符匹配,而如果s串的第i个字符不等于t原创 2022-05-18 19:30:24 · 35 阅读 · 0 评论 -
(第十届蓝桥杯国赛)E-路径计数(dfs)
其实这个点我们可以特判一下,也就是说我们在dfs时直接从第一个点一步可以到达的点开始搜索即可,也就是说从(0,1)和(1,0)这两个点分别dfs一次,把两次答案相加就是最终答案。最后我们来处理一个问题,就是如何去除我一开始说的那种情况的影响,当然可以直接在最终结果中减去2,但是我们在其他题目中如果不知道这样的情况有多少呢?当然我们还有一种处理方法就是说,我们从原点出发,每次只设置下一个点为已访问,这样就可以避过原点了,一会我会附上这两种方法的代码,基本上是一样的,只是设置标记的位置不一样。原创 2022-05-17 21:15:15 · 38 阅读 · 0 评论 -
(第十二届蓝桥杯国赛)G:异或变换(模拟+找规律)
这道题目当时在考场写了个暴力,所以现在过来补一下看一下数据范围,发现t是小于1e18的,所以肯定不能直接模拟,换句话说我们必然要想到一种方法来减小t且不能影响答案,然后就可以打表找一下规律,发现这种异或变换是呈现一定的循环性的,假如01串长度为n,那么循环节大小就是第一个大于等于n的2的幂次,当然这个规律并不是很好发现,这就启示我们可能在一道题目没有思路的时候可以选择打表去找下规律,说不定会有所收获。知道了循环节的大小后我们就可以用t对循环节大小取余,然后直接模拟即可,因为长度不大于10000,...原创 2022-05-07 16:51:28 · 369 阅读 · 0 评论 -
(第十二届蓝桥杯国赛)F123(数学+二分)
分析:这道题目的数据量还是很大的,所以肯定不是暴力解决,这道题我当时在比赛时是用二分+数学公式推导来做的。首先看到答案的形式我们很容易想到前缀和性质来解决,求l到r上所有数的和,就等价于求前r个数的和再减去前l-1个数的和,所以我们的问题就转换为了如何求出前x个数和。先观察一下数的规律,可以发现数是分段连续的,而且每一段的个数都比上一段的个数多1,于是我们就可以先查出x所在段的段号,然后我们分别求出来x所在段前面的所有段的元素的和以及x所在段的且在x及x之前元素的和分析到这我们就把题目分...原创 2022-05-07 15:37:13 · 425 阅读 · 2 评论 -
(蓝桥杯)二进制问题(数位DP)
这其实就是一道基础的数位DP题,如果对这方面知识有了解的同学可能就能直接做出来,如果不知道什么是数位DP的同学可以看这里:数位DP模板详解_AC__dream的博客-CSDN博客显然我们f数组中只需要存下当前位pos以及遍历到当前位有多少个1,由于这道题的结果是与0无关的,所以也就不需要考虑前导0了,直接当pos位变为0时返回就行了,如果遍历到最后一位当前1的个数是k个就返回1,否则返回0,在过程中如果出现1的次数大于k可以直接剪掉。别的就没什么好说的了,下面是代码:#include&...原创 2022-03-18 18:38:40 · 833 阅读 · 0 评论 -
(第十三届蓝桥杯省赛)H:扫雷(搜索+哈希)
分析:这道题就是利用排雷火箭去搜索他管辖范围内的所有点,如果有炸弹就用炸弹再去递归搜索他范围内的炸弹,由于每个炸弹可能会被重复搜索,所以我们需要加一个vis数组,记录每个炸弹是否被搜到过,但是我们这就发现一个问题,就是炸弹的可能位置是很大的,不可能直接开数组去存,所以只能将一个二维的点哈希处理一下,由于最大x值是1e9,我们只要将(x,y)映射成x*(1e9+1)+y即可一一映射,再将映射后的值哈希存一下即可,由于每个位置可能会有多个炸弹,而我们搜索到一个位置有炸弹后,我们需要用这个位置的所有炸弹都去搜..原创 2022-04-13 18:57:31 · 1532 阅读 · 4 评论 -
(第十三届蓝桥杯省赛)试题J:砍竹子(优先队列+模拟)
分析:先来说一个贪心策略,我们优先选择砍所剩竹子中高度最大的竹子,因为无论我们怎么砍高度低的竹子都不可能使得高度低的竹子高度变高,从而能够和高度高的竹子一块被砍,相反的,我们砍完高度高的竹子后由于高度变低,所以可能会跟原来高度低的竹子一块被砍,所以这种贪心策略显然是正确的。而且高度相同的连续竹子一定要放在一起砍,这是显然的,一次可以砍完的事情为什么非要分几次呢?有了这个策略我们再来看一下一棵竹子最多会被砍多少次,你可以先按竹子高度最高1e18来算,发现他经过6次就可以砍成高度为1的竹子,也就是说每棵竹子..原创 2022-04-11 21:48:46 · 2439 阅读 · 4 评论 -
(第十三届蓝桥杯省赛)F:统计子矩阵(双指针)
样例输入3 4 101 2 3 45 6 7 89 10 11 12样例输出19分析:赛前没见过这样的做题方法,赛后才知道原来具有某种单调性质的子矩阵问题还可以通过双指针来进行优化,下面来对这种方法进行一下介绍:我们先枚举矩阵的左右边界,这个复杂度是n^2的,如图所示:确定L和R后,我们来枚举上下边界,在上下左右边界内的数都是我们所需要选择的数,因为我们能保证枚举完所有的可能成为答案的上下左右区间,所以这样枚举也是正确的。那是不是枚举上下边界也是n^2的复杂度呢?其..原创 2022-04-11 18:24:12 · 1492 阅读 · 5 评论 -
(第十三届蓝桥杯省赛)I:李白打酒加强版(动态规划)
输出答案对1e9+7取模样例输入5 10样例输出14分析:这是一道动态规划题,设f[i][j][k]表示走到了第i个位置,遇到了j个花,还剩k斗酒的合法方案数.初始化很简单就是f[0][0][2]=1,因为一开始酒的数量是2假如共遇到店n次,遇到花m次:那么答案就是f[n+m-1][m-1][1],这是很容易理解的,因为我们共需要遇到m次花且最后一次一定是花,则走到倒数第二个位置时一定已经遇到了m-1个花,且由于遇到花后酒的数量会减少1,所以走到倒数第二个位置时酒的数..原创 2022-04-10 08:43:22 · 5182 阅读 · 5 评论 -
第十三届蓝桥杯省赛
答案:1478这个题目答案我不太确定,我当时考虑顺子时是记录0的,所以我的答案是14,但是不考虑0的话答案就是4,答案大概率是4分析:我们先以周为单位,一周做5*a+2*b道题目,那么我们完整地做了n/(5*a+2*b) 周,这些周做了n/(5*a+2*b)*(5*a+2*b)道题目,计算机中除法是下取整,剩余的题目我们直接一天一天的计算即可,下面是代码:#include<iostream>#include<algorithm>#include<c..原创 2022-04-09 20:38:47 · 5034 阅读 · 13 评论 -
第十三届蓝桥杯省赛D:修建灌木(思维)
分析:我们很显然能够想到的一件事第i棵树的高度就是就是我们两次对第i棵树修建的间隔,而这显然是分为两种情况,一种是向右修剪到第n棵树后后再返回直到第i棵树,这种情况对应的间隔是2*(n-i),还有一种是向左修剪到第一棵树后再返回直到第i棵树,这种情况对应的间隔是2*(i-1),对这两种情况取一个最大值即可得到答案。下面是代码:#include<iostream>#include<algorithm>#include<cstdio>#include&l...原创 2022-04-09 19:53:51 · 1244 阅读 · 1 评论 -
第十三届蓝桥杯省赛E:X进制减法(贪心)
输出一行一个整数,表示X进制数A-B的结果的最小可能值转换为十进制后再模1e9+7的结果。分析,这其实是一道贪心题,我们先来看一下每一位上的数的权值是由什么决定的,就拿题目中给的数来说吧,321,3所在的位是8进制,2所在的位是10进制,1所在的位是2进制,很显然可以知道每2个最低位可以进一个第二位,每10个第二位可以进一个第一位,也就是每2*10个第三位可以进一个第一位,写到这我们或许会发现,第i位的权值其实就是比第i位低的位上的进制之积,类比一下我们习惯的二进制和十进制这个也很容易能够想明白,这..原创 2022-04-09 19:46:02 · 1525 阅读 · 11 评论 -
(蓝桥杯第十三届省赛)G:积木画(动态规划)
读入一个n,问有多少种不同的方式,答案对1e9+7取模。分析:这道题是一个动态规划,设f[i][0]表示当前拼完了前i列的方案数,f[i][1]表示当前拼完了前i-1列,且第i列拼完了上面一个的方案数,f[i][2]表示当前拼完了前i-1列,且当前第i列拼完了下面一个的方案数。那么答案就是f[n][0]下面进行动态转移方程的推导:首先看f[i][0]可以由那些状态转移:假如我们当前要放这样的一种积木,那么显然是由f[i-1][0]递推过来的,那要是放这样的积木呢?,那就是由f[i-1][..原创 2022-04-09 19:33:59 · 2803 阅读 · 10 评论 -
(第十一届蓝桥杯总决赛)H:答疑(贪心)
题目链接:“蓝桥杯”练习系统分析:这道题目我感觉题意叙述上有点问题,题目中说一位同学需要准备s秒时间进入办公室,离开办公室需要e秒时间,他只说进入办公室需要准备s秒并没有说在上一位同学发出消息后到离开办公室前这段时间内不能准备,所以就导致了我一直没能想出来正确思路。也希望大家能够注意这一点。下面来进行正确的思路分析假设最优的安排答疑顺序是1,2,3……,n,每个编号代表一个同学那么1号同学发消息的时刻就是s1+a12号同学发消息的时刻就是s1+a1+e1+s2+a23号同学.原创 2022-04-07 20:42:18 · 535 阅读 · 0 评论 -
(蓝桥杯第十一届决赛)G游园安排(最长上升子序列)
题目链接:“蓝桥杯”练习系统分析:这是一个最长上升子序列问题,只不过每一个元素不是一个整数而是一个字符串,但是本质是一样的,最长上升子序列问题我下面给出两种方法最长上升子序列的求解问题我就不赘述了,之前一篇博客里面已经讲的挺详细的,详情参考:最长子序列问题详解_AC__dream的博客-CSDN博客_最长子序列第一种方法就是普通的一维dp,f[i]表示以第i个字符串结尾的最长上升子序列的最大长度,动态转移方程我就不说了,我想说的是别忘了开一个pre数组记录一下转移到当前位置的上一个位置是什么原创 2022-04-07 18:58:28 · 279 阅读 · 0 评论 -
(蓝桥杯第十一届决赛)试题D:本质上升序列(动态规划)
先把题目中的字符串给出来:tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhfiadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqijgihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmadvrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl分析:虽然这只是一道填空题,但是我觉得这个还是有一定的思考意义的,所以我今天就..原创 2022-04-06 22:11:45 · 1639 阅读 · 0 评论 -
(第十一届蓝桥杯省赛)超级胶水(思维)
题目链接:活动 - AcWing分析:一开始我以为这道题目是石子合并,就是合并的代价由两堆石子的重量之和变成了两堆石子的重量之积,但是发现数据范围太大无法用传统的石子合并方法来解决。然后仔细写了写发现这道题目的答案是一个定值。我们假设由n堆石子,重量分别为x1,x2,x3……,xn我们逐个分析每堆石子的贡献,就拿第i堆石子来说,假如第i堆石子先和第i+1~k堆石子合并(k可以等于i+1),那么他的此次合并对最终的贡献就是(x(i+1)+x(i+2)+……+xk)*xi,此时他和第i+1~k堆原创 2022-04-04 22:32:12 · 14 阅读 · 0 评论 -
(第十二届蓝桥杯省赛)试题C直线(set+防止精度损失)
题目:这道题目直接暴力求解k和b就行,然后把k和b当成一个二元组放入set中,最后直接记录一下集合中元素个数即可,但是有一点需要注意的是因为我们用浮点运算会有精度损失,所以我们应该尽量避免用精度损失后的数再去进行计算,也就是说,我们求解b时不能用k去带入计算,因为计算k的过程中会有精度损失,所以我们应该用k的计算表达式代入方法去计算b对于y1=k*x1+b和y2=k*x2+b我们知道k=(y1-b)/x1,b=y2-k*x2,由于我们一开始已经计算出来了k,但是此时的k是有精度损失的,我们不应该原创 2022-04-04 19:44:41 · 601 阅读 · 0 评论 -
乘积最大(贪心)
输入样例1:5 3-100000-10000210000010000输出样例1:999100009输入样例2:5 3-100000-100000-2-100000-100000输出样例2:-999999829分析:这是一个贪心题,需要分情况进行讨论,我们需要单独存储正数和负数(0按正数处理),第一种情况,给定的数的个数与要选的数的个数相同,那么这个直接全选就行了,还有一种情况就是全是负数,这个也要单独分情况进行讨论,我们先对负数进行排序,..原创 2022-02-05 11:15:00 · 495 阅读 · 0 评论