蓝桥杯
文章平均质量分 54
Waldeinsamkeit41
这个作者很懒,什么都没留下…
展开
-
[做题总结] 降低时间复杂度的方法
刷题原创 2024-04-08 16:57:51 · 71 阅读 · 0 评论 -
二维矩阵内的BFS搜索
1.混境之地1 - 蓝桥云课 (lanqiao.cn)题目解读在思考的时候觉得传送门是个很玄幻的东西,在行走的路径上简直有无数种排列组合,我刚开始还想着怎么排列组合出来。后来发现,,,怎么可能是自己来排列组合,用BFS跑一遍整个矩阵。。。到达每个点,除了上下左右四个方向,如果是到了一个传送门的启动点,更新一下它的传送点的最小距离。遍历过程中,若存在一个方案使得到达的点的距离更小,则更新距离并将该点入队,更新其他点。问题还来到了,如何知道一个点是不是传送门的启动点。由于题目说一个点只能是一个门原创 2024-03-01 14:06:59 · 465 阅读 · 0 评论 -
BFS在无向图里找最短路径
首先,整体的思路是,小蓝如果起始的能量值够用的话,可以从起点到终点直接最短路径,如果不够的话,肯定是要先经过圣泉并停留一定的时间(这要由能量剩余值和圣泉到终点的路径长度决定),如果是不止一个圣泉,我们要遍历所有圣泉,找到最短路径和。题目给的是一个二维矩阵,每个点可达的地方,就相当于是与它有一条可以连的无向边,然后在无向图中确定最短路径就是广搜BFS,每一轮遍历所有可以到达的结点。第二次是找到圣泉到终点最短距离。要解决这个题,我们得知道:小蓝到终点的最短距离,小蓝到圣泉的最短距离,圣泉到终点的距离。原创 2024-02-29 17:02:29 · 327 阅读 · 0 评论 -
[图论] 树上不重复权值的路径数
整体思路,枚举路径上每个点,记录这个点 u 可以向上延伸到多远,如果可延伸到 x 点,则这个点对答案的贡献为 dep[u] - dep[x](下文的maxx) + 1为什么枚举是向上延伸?因为可以记录已走过路径中已有的权值,每到一个新的点,只需要知道这个点在已有路径上是否存在。用来实现的数据结构是 map 以权值为键,以出现的深度为值。原创 2024-02-27 10:53:25 · 537 阅读 · 0 评论 -
[树形DP] 树的最大独立集
这个挺简单的,注意状态转移时,如果选这个点,那么它的子结点状态应该为不选,如果这个点的状态是不选,那么可以在它的子结点里选择:选/不选两个状态,所以最后结果是max挑选。原创 2024-02-25 20:47:38 · 344 阅读 · 0 评论 -
逆推求期望DP
我的开始的想法:状态设置 dp[i][j] 为玩了 i 个职业 j 个阵营的期望天数,初始值很好解决 dp[1][1]=1 ,但是有个问题,每对 (i,j) 除了边界那里,会由三个地方来决定这一个(i-1,j-1)(i,j-1)(i-1,j),所以???原创 2024-02-23 18:45:42 · 327 阅读 · 0 评论 -
[DP学习] 期望DP
注:可以用方差求平方的期望。原创 2024-02-23 17:16:22 · 389 阅读 · 0 评论 -
[树形DP] 最长乘积链
当我们求向上走的最大值时,原理为我到父结点的距离加上父结点到别的点的最远距离,如果父结点到别的点的最远距离经过我时则不能使用,此时就得变成我到父结点的距离加上父结点到别的点的次远距离。最大值与次大值更新原理为:当前结点到子节点的距离加上子节点到叶子结点的最远距离,我们对这些子结点求最大值与次大值即可。对问题进行分析,对每个点dfs去求走不同路的最远距离与次远距离求乘积,时间复杂度为O(n^2)每个合法节点能贡献二个乘积,向下走的最远距离乘次远距离和向上走的最远距离乘向下走的最远距离。看了答案怎么弄的优化。原创 2024-02-21 10:40:54 · 359 阅读 · 0 评论 -
[ACM学习]自上而下树形dp
设置dp状态,相比于更容易出错的贪心更...不易出错。原创 2024-01-22 23:18:31 · 510 阅读 · 0 评论 -
[算法基础学习] 单调栈和单调队列
注意!单调栈和单调队列与 for 一起遍历数组时,时间复杂度是o(n),根据摊还分析。原创 2024-01-19 11:45:22 · 372 阅读 · 0 评论 -
[蓝桥杯学习] ST表
用状态 s[i][j] 记录区间长度为 2^j 的长度的区间的最大值所以状态转移方程就是 st[i][j] = max( st[i][j-1] , st[i+(1 << (j-1))][j-1] )注意状态转移的方向,保证区间合法性(i+2^j 不能超过数组大小)写完这些后,定义好第一个,就可以从前往后进行计算。原创 2024-01-07 21:52:10 · 570 阅读 · 0 评论 -
[算法应用]dijkstra算法的应用
先看一眼原始dijkstra算法,参考自分为三步。原创 2024-01-07 20:10:37 · 548 阅读 · 0 评论 -
[蓝桥杯学习] 线段树
线段树是一种特殊的平衡二叉查找树,使用线段树,可以实现数据的添加、查找和删除。树的根结点表示了一个完整的单元区间,左右孩子的区间是将父结点的区间进行二分,左右孩子的区间之和,就是他们的根结点。叶子结点是区间间隔为1的单位区间(存放的是单个数字),当区间[a,b]的a=b时,就是叶子结点了。如果用线段树来存储一个区间 [a,b],叶结点的个数就是(b-a+1),并且存储数字从a到b。原创 2024-01-07 13:47:50 · 573 阅读 · 0 评论 -
[蓝桥杯学习] 树状数组的二分
注意原创 2024-01-06 17:19:00 · 574 阅读 · 0 评论 -
[蓝桥杯学习] 树状树组
例如说,lowbit(0101100100) = (100)时间复杂度o(1)原创 2024-01-06 16:13:01 · 610 阅读 · 0 评论 -
[蓝桥杯学习] 树链剖分
将树分割成若干条链,以维护树上的信息,若无特殊需求,一般是重链剖分。原创 2024-01-05 22:07:25 · 660 阅读 · 0 评论 -
[蓝桥杯学习]树上差分
前缀和 sum_i = sum_i-1 + a_i差分 diff_i = a_i - a_i-1。原创 2024-01-04 11:37:40 · 558 阅读 · 0 评论 -
[数论] 异或
类比,我们可以得到 范围(L,R)的异或和,设 S_R 表示从1到R的元素异或和,将S_L-1 与S_R异或。因为相同两项异或可抵消,所以S_L-1 与S_R异或之后,刚好剩下从 a_L 一直异或到 a_R。来解释一下为什么,展开来看。原创 2024-01-02 13:20:43 · 369 阅读 · 0 评论 -
[蓝桥杯基础题型] 图论题目
首先答案只能是0 1 2 ,原因:把出发点堵住只需要两个路障。路障为1:能找到一条从出发点到终点的路,但是只有一条。路障为2:能找到一条从出发点到终点的路,有多条。路障为0:不能找到一条从出发点到终点的路。难点:如何判断只有一条路。原创 2024-01-01 21:17:55 · 484 阅读 · 0 评论 -
[c++学习] 打卡第一天之string
与char[]不一样,没有'\0'原创 2023-12-24 20:29:34 · 360 阅读 · 0 评论 -
[c++学习打卡]STL
我觉得我一道题做不对的原因是:1.首先,平时做题就不是在有限的时间内完成 2. 做题时,逻辑没有理清,或者做题时精力不达标,思维陷入混乱 3. 思维没有流动起来,会走神或者卡顿 4. 没有把前几步记清楚,思路进行到了哪一步没有清楚。5. 知识公式没记住。原创 2023-12-26 22:14:10 · 937 阅读 · 0 评论 -
[蓝桥杯练题]十四届A组原题
1. 在把字符转换成数字时,没有 - '0'2. 读入数字时,是高位在前,所以,先读入的是高位3. 两数相乘4. 函数名后没有带[下标],也不会报错,呜呜。5. 我将平方后的数组容量从150 升高到了300,多通过了两个。原创 2023-12-25 17:44:16 · 421 阅读 · 0 评论 -
[c++学习打卡]常用库函数
或者使用lambda表达式(匿名函数)第三个参数:[](const int &u, const int &v) 这个是拷贝形式下的。原创 2023-12-24 21:41:38 · 363 阅读 · 0 评论