自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 蓝桥杯B组C++:完全二叉树的权值(双指针+位运算)

1、拿到每层的数据,需要拿数组的1,2,8个数,都是2的k次方,想到通过h = 1;1 << (h-1);2、n = 1e5,大概需要On时间复杂度的算法;并且由于需要俩个单调前进的。

2025-03-29 21:46:51 142

原创 【算法总结】状态压缩dp- y总算法基础课

俩道算法基础课的例题+总结

2025-03-08 12:33:29 383

原创 【算法总结】线性DP(5道例题都来自y总算法基础课)

线性 DP,定义,套路,例题都有。

2025-03-06 22:14:32 147

原创 【算法模版】kmp

kmp函数:设置双指针i,j初始指向0,若ij对应的主串和子串字符匹配,同时移动ij一步,否则将j next映射一次(子串先和发生不匹配的位置对齐,再通过j对应的next向左移动对应步数),若ij任何一个移出字符串就停止,说明此时是。移动,若不是刚开始且ij指向的字符不相等,就不断移动j到next[j-1],若ij指向的字符相等,就j++,移动,若不是刚开始且ij指向的字符不相等,就不断移动j到next[j-1],若ij指向的字符相等,就j++,next:下标对应的最长公共前后缀,是对于从当前下标字母的。

2025-03-02 00:14:19 316

原创 【题解+总结】P3808 AC 自动机(简单版)- 洛谷

AC自动机,本质是trie树的基础上,再维护一个fail,从而保证在每次找匹配的字符串的时候,总能先匹配到最长的字符串(abc),再不断去找它的fail(bc),以此达到快速统计字符串匹配的数量的目的。

2025-02-25 22:29:14 237

原创 【题解】洛谷P1119 灾后重建(floyed算法)

因为要让每个节点都被考虑到一次,即都被传入floyed一次,所以mid一步一步走,最终所有节点都会被当作中间点传入floyed一次。注意题目和模版的区别,根据区别,优化代码,有可能需要我们优化时间复杂度,这时看看哪个for可以优化,优化的时候,考虑到数据的单调性。mid只要走到2就能保证所有的<=T的节点被考虑到了,因为t数组是单调递增的,不会出现 1 2 3 4 2的情况。而结合这道题中,只有当结点的修建时间<=T时,才能通过,加上t数组的数据和T都是单调递增。而floyed里面又有3层循环。

2025-02-24 21:19:38 471

原创 【算法对比】最短路算法(Dijkstra、Dijkstra+heap、Bellman_ford、Spfa、floyed)

文章的目的在于对比Dijkstra、Dijkstra+heap、Bellman_ford、Spfa算法的区别,下面将从,题目区别,算法核心代码&算法核心逻辑,相同变量的含义区别3个维度去对比

2025-02-21 21:54:06 2009

原创 【题解】P8710 [蓝桥杯 2020 省 AB1] 网络分析

解决1,可以引入unordered_map<int,vectot<int>> 类型的g容器,键值对分别存根结点和根节点对应的树的所有结点,只需遍历某个节点对应的树下所有结点就可以大大减少遍历次数。连接起来,这样连起来的树高度可能会很高,从而导致在查找某节点的祖宗节点的find函数中,递归层数过高,时间效率太低。按秩合并,就是在op==1的时候,每次都把矮的树连接到高的树去,说得再具体点,就是把a节点对应的矮的树的根节点,连接到b节点高的树的根节点去。代码会超时,时间复杂度为:O(mn) ,最坏干到1e9。

2025-02-19 16:53:41 354

原创 【算法总结】7道例题帮你彻底搞懂二分

从定义,模版,套路,例题层面总结了二分算法

2025-02-04 16:06:13 1979

原创 acwing92.递归实现指数型枚举-dfs算法流程总结

5,调用递归函数:如何搜到下个节点?u+1如何更新数据?传入res6,调用递归函数后:是否需要恢复现场?所以需要传入参数u,从1开始搜到n,搜一次就行(指的是main函数只调用一次dfs)4,调用递归函数前:进行什么数据更新?res若考虑u,要加进去是否需要剪枝?搜1-n所有数都被考虑要不要加入res后的所有结果,所以可以用dfs。每次搜索不需要有以前搜索的结果,所以不需要有记忆化搜索。2种,考虑和不考虑u这个数,决定调用2次递归函数。4. 调用递归函数前:进行什么数据更新?2,搜完一次结果的条件是什么?

2025-01-22 22:02:17 229

原创 P4552 [Poetize6] IncDec Sequence · 洛谷

每次对差分数组非第一位元素的数,的操作次数都要最少,(这个操作包括操作1:b[i] +1,b[j+1] -1/b[i] -1,b[j+1] +1 或者操作2:单个元素++1 /--1。原数组a[i ~ j ] +1/-1后,最终都变成一样的数的次数最少,即对差分数组非第一位元素的数b[i] +1,b[j+1] -1/b[i] -1,b[j+1] +1后,最终都变成0的次数最少。-->b:0 0 0 0 操作1:和b[1]连连看 所以b[1]就有俩种情况,1000 /0000。3,局部最优解的条件是什么?

2025-01-16 11:23:13 816

原创 食物链-并查集y总解法 acwing-算法基础课

2,需要判断多种动物的关系,可以把多种动物的编号抽象成结点,把判断多种动物的关系,抽象成判断结点之间的关系,则可以考虑用并查集算法。3,并查集算法可以额外维护某个值,来满足我们的题目需求,这里我们可以额外维护d[x],表示结点x到父结点的距离。得到他们的d[x]后,若d[x]%3 余数相等,则他们是同类。通过这个关系,我们可以初始化?,即d[p[x]]的大小,即创建俩个结点的关系。首先,通过并查集的模版算法,把d[x]变成结点x到根结点的距离。1,三类动物的关系可以画成如图的关系,A--->B表示B吃A。

2024-11-25 18:02:39 396 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除