蓝桥杯真题题解
文章平均质量分 63
师大阿林
北京师范大学教育教学专业研一|人工智能教育方向
本科南信大=>保研北师大
展开
-
蓝桥杯真题 青蛙跳杯子 Python (BFS搜状态求最小步数)
青蛙跳杯子题目分析AC代码反思总结题目X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。*WWWBBB其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。X星的青蛙很有些癖好,它们只做3个动作之一:跳到相邻的空杯子里。隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。对于上图的局面,只要1步,就可原创 2022-03-22 19:59:26 · 307 阅读 · 0 评论 -
【背赛笔记 常用写法 模版】Python蓝桥杯备赛笔记记录 【建议收藏!】
这篇文章是阿林在备战蓝桥杯编程比赛的笔记,主要记录了比赛一些常见的算法模版、数据结构、以及python语法基础原创 2022-03-01 16:51:04 · 1739 阅读 · 0 评论 -
蓝桥杯 第十三届 【反思】 顺利拿下Python B组省一
第一次参加蓝桥杯,从2021年12月初寒假开始断断续续准备,到开学后2月集中刷题了两个月,Python的题解本来就少,感谢小蓝和Py小郑的文章,从中学到不少。江苏省一中旬吧本次比赛最大的感受就是:其实准备再好,临场的心态也很重要,不能慌,要稳住沉住其实蓝桥杯更多考察的还是数学问题,本届py b 明显难度上来了很多模板题不能只是去套模板,要随机应变实在不会把样例输出一下,也能骗一点分其实准备了这么多真正临场考到的还是最基础的基本功,该会的会不会的还是不会,不能欺骗自己很努力,比如自己写了多原创 2022-04-30 19:13:53 · 1810 阅读 · 4 评论 -
走方格【第十一届】【省赛】【B组】Python 【dfs(超时)+记忆化搜索+dp】
题目:方法一:dfs 超时当 n, m 都为 30 的时候,从 (1, 1) 走到 (30, 30) 得走 58 步,每次都有两个决策:向下走或向右走,那么一共会有 2^58 次决策,虽然在走到偶数坐标或者走出界时,递归会终止,但实际运行次数肯定还是非常大的,自己在电脑上跑一下也能感受到慢!N=35M=35mat = [[0]*M for i in range(N)]n,m=map(int,input().split())ans=0def dfs(i,j): global n,原创 2022-04-08 09:05:31 · 1014 阅读 · 0 评论 -
矩阵【第十一届】【省赛】【B组】Python 【dp求数量写法(注意写法)】
题目把 1 ∼ 2020 放在 2 × 1010 的矩阵里。要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案?答案很大,你只需要给出方案数除以 2020 的余数即可分析本题dfs不易得出,我们可以采用动态规划的思路完成。分界线是什么? i>j设dp[i][j] 为上面一行有i个数,下面一行有j个数时所具有的方案数。因此不难得出:if(i>j) dp[i][j] += dp[i-1][j]上面一行的数的数量大于下面一行时,才能填数,否则不原创 2022-04-07 21:36:47 · 401 阅读 · 0 评论 -
作物杂交【第十一届】【省赛】【B组】Python 【递归+记忆化搜索+倒序dfs+dp】
题目描述作物杂交是作物栽培中重要的一步。已知有 N种作物 (编号 1 至 N ),第 i 种作物从播种到成熟的时间为 Ti。作物之间两两可以进行杂交,杂交时间取两种中时间较长的一方。如作物 A 种植时间为 5 天,作物 B 种植时间为 7 天,则 AB 杂交花费的时间为 7 天。作物杂交会产生固定的作物,新产生的作物仍然属于 N 种作物中的一种。初始时,拥有其中 M种作物的种子 (数量无限,可以支持多次杂交)。同时可以进行多个杂交过程。求问对于给定的目标种子,最少需要多少天能够得到。如存在 4 种作物原创 2022-04-07 20:35:58 · 840 阅读 · 0 评论 -
七段码【第十一届第三场】【省赛】【B组】Python 【位运算+穷举观察法、dfs+并查集判断连通块个数】
题目:分析:简化问题 0 -6表示 这a-f 7段,最短可以表示 2**7-1 ==127个情况,完全可以穷举每一种表示然后数设计的位运算x >> i & 1:判断数字 x 的二进制排列中,第 i 位是否为 1;000 0000 从右到左分别表示a-f 循环1-127,哪位为1打印出对应字符" |"以下c++代码参考他人#include <iostream>using namespace std;int main(){ int cnt = 1原创 2022-04-07 09:25:49 · 207 阅读 · 0 评论 -
上升子串【第十一届第三场】【省赛】【B组】Python 【记忆化搜索dfs+朴素dfs(学习写法)】
题目描述找到所有上升子串的数量,很明显dfs,在找长度为3肯定会用到长度为2的子串存在重叠子问题,优化用记忆化搜索,for循环每一点的上升子串的数目都搜出来记录下来,最终求和ff[x][y]代表x y 点出发的上升子串数目注意这里的一个区别,就是进入下一层dfs之前f[x][y]=1,因为一个字符也算M,N=510,510f=[[-1]*10 for i in range(10)]#代表x y 点出发的上升子串数目dire=[[1,0],[-1,0],[0,1],[0,-1]]mat=原创 2022-04-06 21:09:36 · 259 阅读 · 0 评论 -
蓝桥杯 扩散【第十一届】【决赛】【B组】 【Python】 多源点BFS+deque双向队列优化
扩散题目分析代码题目分析给出四个点求经过2020分钟后扩散成几个点了,以点为中心向四周扩散的话容易想到是要使用BFS实现。=》多源点BFS本题的难点是如何才能更优的存储、使用数据。如果在考场上跑了几分钟还没出结果是很影响心态的!!!! 一定要会提升效率这篇文章分析几种数据类型使用的很棒通过比较我们发现,不同的数据类型它的处理速度是不一样的。在队列模型中,最快的是deque双向队列,其次是列表,最后是queue单向队列,没想到列表不是最慢的。如果要进行数据存储的话集合是最快的,其次是字原创 2022-03-25 15:28:58 · 526 阅读 · 0 评论 -
画中漂流【第十一届第三场】【省赛】【B组】Python 【dfs =》记忆化搜索优化(建议学会用记忆化搜索)+dp(注意初始值的界定)】
题目分析求方案总数,容易想到dfs搜索,搜索携带三个参数T M D 代表距离救援还有 T 分钟,还剩 M 点体力,距离峡谷还有 D 米dfs 搜,但是超时!MOD=int(1e9+7)cnt=0def dfs(T,M,D):#距离救援还有 T 分钟,还剩 M 点体力,距离峡谷还有 D 米 global cnt if T==0:#救援到达 if M==0:#体力需要在救援前花光 cnt = (cnt+1)%MOD return if M>0原创 2022-04-06 17:10:26 · 480 阅读 · 0 评论 -
车牌【第十一届第三场】【省赛】【B组】Python 【简单dfs +剪枝】
一开始看错题意了,以为字母有26个。。。一定一定要读清楚题目再写,再简单也要读清楚题目!!!没有必要真的要把每一位表示出来,比如字符A——F,完全可以用下标0-15替代,0-9替代数字 10-15替代A——F,简化问题!直接6个for循环循环每一位1616161010*10 =3375000 计算机只需要进行 3375000 次运算就能求出答案!!!注意:连续3位相等的情况不要进行累加!直接continue掉cnt =0for i in range(16):#妈 的 ,python的遍历一定注意原创 2022-04-06 11:19:55 · 144 阅读 · 0 评论 -
【蓝桥杯 算法提高】【打包】Python 【二分答案+二分模板】
题目分析 共有N个礼物,需要进行M次打包,希望让每个人得到的包裹连续且最大重量最小,假设所有礼物的总重量为sum ,所有礼物中最重的礼物为max,那么答案只有能可能出现[max,sum] 这个区间内部,去二分出最小的那个能打m包的最大重量举个例子理解一下:!!(一定多推推!)答案一定在[max,sum]区间内,使用二分来找具体是哪一个值,定义枚举的值是Target,举个栗子:加入礼物重量分别是:1,2,3,4,5,要打成3个包裹,最大值是5,和是15,也就是说答案只有可能在[5,15]原创 2022-04-03 17:37:43 · 1179 阅读 · 0 评论 -
数字三角形【第十一届】【省赛】【C组】Python 【dfs 超时50分 、记忆化递归 dp+备忘录、dp+奇偶找规律 】
数字三角形【第十一届】【省赛】【C组】题目分析题目分析乍一看是一个搜路径和最大值的问题,用bfs搜出每一条路径,从上至下,计算每一条的和,最后取哪一条?看题目想左走和向右走次数不超过1不要局限于字面意思,只考虑最终情况之差<=1为dfs函数传入两个left right 记录当前经历过左下↙和右下↘而来,最后只选择满足的 最大值注意边界条件i=0 i=j#TLE 50分n=int(input())a=[]for i in range(n): a.append(lis原创 2022-04-02 16:59:54 · 1215 阅读 · 0 评论 -
蓝桥 穿越雷区【第六届】【决赛】【C组】 【 Python】 (BFS求最小步数)
蓝桥真题 穿越雷区 Python题目分析代码题目这里是引用问题描述:X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了A,B区,其它区都标了正号或负号分别表示正负能量辐射区。 例如: A + - + - - + - - + - + + + - + - + - + B + - + -坦克车只能水平或原创 2022-03-24 20:40:40 · 761 阅读 · 0 评论 -
蓝桥杯 【包子凑数】【第八届】【省赛】【B组】质数最大无法表示的数定理+完全背包变形
这里写目录标题题目分析代码优化题目分析要解本题需要具备的知识点两个质数凑不到的最大整数对于任意正整数p,q,且gcd(q,p)=1,【互质的条件,最大公因数是1】则最大无法表示成px+qy(x>=0,y>=0)的数是【pq-q-p】换而言之,大于【pq-q-p】都可以表示,我们不用找了由1可以知道,如果n个数不互质,那么就有inf(无穷)多个不能表示通过gcd==1 判断n个数互质完全背包的状态转移方程从而我们只需要在[0,pq-q-p)找有多少不能表示的,代码优化原创 2022-03-26 21:13:52 · 350 阅读 · 0 评论 -
蓝桥杯 蓝肽子序列【第十一届】【决赛】【研究生组】【 Python】DP LCS 转换思想
蓝桥杯 蓝肽子序列【第十一届】【决赛】【研究生组】DP模板题 Python题目分析代码题目分析转换思想求最长公共子序列长度,典型DP问题,但是这里有点不一样,需要把每个大写字母开头的字符串看成一个整体,这样问题就和LCS一样了!(LCS是什么?看这里动态规划 Python篇)定义一个用来切分字符串的函数,重新存储每一个大写字母开头的字符串,将其看作一个字符处理,因为python可以自动判别两个字符串是否相同!边界处理一般dp问题我们都不用0下标,dp数组也开大一点,防止下标越界问题原创 2022-03-25 10:00:26 · 684 阅读 · 0 评论 -
连号区间数【第四届】【省赛】【B组】【第四届】【省赛】【B组】【Python】 理解题意 未AC 60超时
连号区间数【第四届】【省赛】【B组】题目分析题目描述 :在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。输入格式:第一行是一个正整数N (1 <= N <= 50000), 表示全排列的规模。第二行是N个不同的数字Pi(1 <= Pi <= N), 表示这N个数字的某一全排列。输出格式:输出一个整数,表示不同连号原创 2022-03-26 10:05:10 · 1920 阅读 · 0 评论 -
蓝桥杯 【123】 【国赛】 【二分查找】 【三角形数】 【数列前n项和】【封装函数】
蓝桥杯 【123】 【国赛】 二分 三角数 前n项和题目分析分析代码反思其他例题AcWing 461. 金币(二分查找位置)AcWing 519. 跳石头 (贪心+二分找最短距离的最大。 仍有不理解)题目分析二分模版分析关键是知道三角形数这个知识点三角形数排列成三角形处理某个元素是第几组第几个,第几行第几列代码n=int(input())t=[]for i in range(n): t.append(list(map(int,input().split())))原创 2022-03-26 16:24:40 · 369 阅读 · 0 评论