![](https://img-blog.csdnimg.cn/4bf6744cffb343858d310a57fe430589.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法刷题笔记
文章平均质量分 83
算法to蓝桥杯
call me by ur name
从此以后
展开
-
2023蓝桥杯真题c++省A
比赛的时候,脑袋要清晰一点,当时写幸运数这道题都感觉没在用脑子思考,花了特别多时间。原创 2023-05-11 13:57:54 · 5528 阅读 · 3 评论 -
Kruskal算法、Kruskal重构树、LCA算法
KruskalKruskalKruskal 算法是一种求解最小生成树的贪心算法。它的基本思想是从图中的边集中依次选取边,使得选出的边不会构成回路,并且满足边权和最小。具体实现过程如下:将原图中的所有边按照边权从小到大排序。依次选取排序后的边,如果这条边的两个端点不在同一个连通块中,则加入该边,将它们之间的连通块合并成一个新的连通块,并把该边加入最小生成树的边集中。重复上述步骤,直至加入 n−1n−1n−1 条边(其中 nnn 表示原图的节点数),此时得到的边集即为原图的最小生成树。KruskalKruska原创 2023-05-09 19:23:12 · 999 阅读 · 1 评论 -
区间dp算法刷题笔记【蓝桥杯】
当我们需要求解一个序列中某个子区间的最优解时,可以考虑使用区间dp算法。状态设计:需要定义一个状态表示子区间的最优解。状态的设计通常与问题的性质密切相关,可以根据实际情况选择不同的状态表示方式。状态转移方程:需要设计一个状态转移方程,根据已知状态推导出未知状态。状态转移方程通常是一个递推式,可以根据问题的性质和状态的定义来确定。边界条件:需要确定最小的子问题的最优解,即边界条件。边界条件通常是一个或多个初始状态,可以根据实际情况选择不同的初始状态。原创 2023-04-06 10:05:26 · 530 阅读 · 0 评论 -
广度优先搜索算法刷题笔记【蓝桥杯】
BFS算法一般用于搜索最短路径问题,即在图结构中从一个顶点出发找到到另一个顶点的最短路径。BFS算法的设计步骤如下:定义一个队列,将起点加入队列。标记起点为已访问。从队列中取出一个顶点a,遍历其所有邻接顶点,选择未标记的顶点b,将b加入队列中。并标记b为已访问。重复执行第3步,直到找到目标顶点或者队列为空。如果队列为空,说明无法找到目标顶点。BFS算法可以用于许多问题,如图的连通性、迷宫问题、单源最短路径问题等。原创 2023-04-04 18:27:39 · 648 阅读 · 0 评论 -
并查集算法刷题笔记【蓝桥杯】
不难看出这几道题都是一开始用传统的数组会出现TLETLETLE的情况,所以需要一个并查集优化时间复杂度。原创 2023-03-30 09:31:14 · 353 阅读 · 0 评论 -
蓝桥杯真题2021c++省A题解
小蓝有很多数字卡片,每张卡片上都是数字0到9。小蓝准备用这些卡片来拼一些数,他想从1开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从1拼到多少。例如,当小蓝有30张卡片,其中0到9各3张,则小蓝可以拼出1到10,但是拼11时卡片1已经只有一张了,不够拼出11。现在小蓝手里有0到9的卡片各2021张,共20210张,请问小蓝可以从1拼到多少?3181。原创 2023-03-26 15:26:38 · 1465 阅读 · 1 评论 -
基础数论算法刷题笔记
数论的题目,首先分析题目的意思,分解成数论相关的模型接着,思路往自己学过的数论知识上靠——质因子、质数、最大公约数辗转相除法、辗转相乘法、公因数。原创 2023-03-16 16:33:39 · 727 阅读 · 1 评论 -
最短路径算法刷题笔记
带负权则无法处理,不能使用Dijkstra算法Dijkstra算法以出发。D——点。原创 2023-01-30 12:12:19 · 569 阅读 · 0 评论 -
图和树基础算法笔记
图的大部分知识在《离散数学》中都已经学习了,所以我主要放一些不知道的知识。原创 2023-01-26 11:09:15 · 822 阅读 · 0 评论 -
动态规划算法刷题笔记【状压dp】
a&1 == 1 判断是否为奇数,如果为1,则为奇数。原创 2023-01-25 11:58:37 · 976 阅读 · 0 评论 -
动态规划算法刷题笔记【背包问题】
dp[i-1][j]指没纳入当前物品,dp[i-1][j-c]+w指纳入当前物品,并且是和j-c体积下的价值作和滚动数组优化空间复杂度。原创 2023-01-14 22:10:59 · 735 阅读 · 0 评论 -
动态规划算法刷题笔记【线性dp】
斐波那契(Fibonacii)数列的递推公式:F(n) = F(n -1) + F(n - 2)错排问题:F(n) = (n-1) * [F(n-1)+F(n-2)]原创 2023-01-08 11:15:34 · 572 阅读 · 0 评论 -
深度优先搜索dfs算法刷题笔记【蓝桥杯】
其实网上已经有不少dfs的算法笔记,但我之所以还再写一篇,主要是因为我目前见到的笔记,都有些太偏向理论了。对于基础薄弱的或是没有基础的人(like me),有点不合适,因为看了,也不能说自己会了。所以这篇主要是实践(题目)出发原创 2022-11-23 10:11:44 · 838 阅读 · 0 评论 -
递归、分治算法刷题笔记
递归、分治算法刷题笔记(内含题目和解析)原创 2022-10-04 20:49:15 · 621 阅读 · 0 评论 -
贪心算法刷题笔记
定义:贪心是求解一类最优化问题的方法,它总是考虑在当前状态下局部最优(或较优) 的策略,来使全局的结果达到最优(或较优)。显然,如果采取较优而非最优的策略(最优策略可能不存在或是不易想到),得到的全局结果也无法使用最优的。而要获得最优结果,则要求中间的每步策略都是最优的,因此严谨使用贪心法来求解最优化问题,证明的一般思路是,即假设策略不能导致最优解,然后通过系列推导来得到矛盾,以此证明策略是最优的,最后用数学归纳法保证是全局最优。。因此,如果在想到某个似乎可行的策略,并且自己无法举出反例,那就勇敢的实现它。原创 2022-09-11 23:23:38 · 988 阅读 · 0 评论 -
枚举算法刷题笔记【蓝桥杯】
一般会出现循环嵌套,外边的循环i 作为左端点,里面的循环j 作为右端点,而且一般 j 是不需要复位的右端点的循环结束条件来自题意左端点的循环一般是从头到尾的。原创 2022-09-04 16:30:53 · 627 阅读 · 0 评论 -
模拟算法刷题笔记【蓝桥杯】
做模拟类型的题目时,首先跟着题目意思,把题目读懂,按照题目要求即可,不需要预先建模。如果可以用已知的代码知识一比一模拟出题目效果最佳(如前文中的安卓图案解锁[NOIP2016]玩具谜题这种,仅凭我目前的代码知识来看,无法找到一个真正的圆形的容器,容纳玩具。但是用2个数组,一个存方向,一个存名字,再根据数学关系推导出位置关系即可)注意寻找数字关系安卓图案解锁中的键盘数字关系(这题挺难找的)[NOIP1999]回文数中的进制转换,进制进位(这个较简单)[NOIP2016]玩具谜题。原创 2022-08-25 14:42:40 · 396 阅读 · 0 评论 -
数组、字符串、日期笔记【蓝桥杯】
令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。比如 02/03/04,可能是 2002 年 03 月 04 日、2004 年 02 月 03 日或 2004 年 03 月 02 日。输出若干个不相同的日期,每个日期一行,格式是 “yyyy-MM-dd”。接下来N行,输入N个格式为“AA/BB/CCCC”的日期。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。有一些日期,日期格式为“AA/BB/CCCC”。..原创 2022-08-07 12:22:17 · 1494 阅读 · 2 评论 -
微笔记·after finishing栈、队列、stl库
#include<bits/stdc++.h>next_permutation作全排列动态数组vectorvector<>常用push_back访问元素——数组名[0]……sort排序默认从小到大排(可更改)sort(a.begin(),a.end())排序规则可以更改int cmp(string s1,string s2){ return s1+s2>s2+s1;}sort(s,s+n,cmp);string类原创 2022-04-27 08:04:00 · 162 阅读 · 0 评论 -
微笔记·++i比i++速度快
后置++要多生成一个局部对象 tmp,因此执行速度比前置的慢。同理,迭代器是一个对象,STL在重载迭代器的++运算符时,后置形式也比前置形式慢。在次数很多的循环中,++i和i++可能就会造成运行时间上可观的差别了。因此,对循环控制变量i,以后尽量写++i。...原创 2022-04-17 20:26:41 · 406 阅读 · 0 评论 -
微笔记·cin、cout比scanf和printf慢
刷题总是超时scanf和printf比cin或cout快10倍左右scanf是格式化输入,printf是格式化输出。cin是输入流,cout是输出流。效率稍低,但书写简便。格式化输出效率比较高,但是写代码麻烦。 流输出操作效率稍低,但书写简便。cout之所以效率低,正如一楼所说,是先把要输出的东西存入缓冲区,再输出,导致效率降低。好像c语言的快一点...原创 2022-04-17 20:00:07 · 401 阅读 · 0 评论