自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心-试填法

试填法可以理解为贪心在数位上的具体应用,我们如果想要一个整体最大的数,那么我们没有必要让这个数每一位是最大的,我们只需要让这个数的最高位最大就可以了,如果两个数的最高位相同,那么我们就需要找次高位最大的,以此类推。这道题具体的实现方法是每次遍历每个(被标记为 1 的)数的最高位(第bit位),如果有满足条件的一组数(cnt.size() >= n)那么把这一组数标记为 1 ,并把最高位加到答案中,这样以来我们就保证总和最大。

2025-10-31 21:31:44 333

原创 背包问题从入门到入土

后面三个背包问题的基础我在这里介绍4种常见的背包问题,这里我想按易 --> 难程度从01背包,完全背包,分组背包,多重背包的顺序介绍。封面附在最后。

2025-09-12 21:53:15 717 3

原创 最小生成树从入门到入土

首先介绍一下最常用最小生成树模板,以边为主体,每次选取最小的边加入最小生成树,总共选取n-1条边,最后若 cnt < n - 1 说明原图有至少两个独立连通分量。

2025-09-10 17:02:01 608 1

原创 我的创作纪念日

学新东西-总结-发博文。拥有了一群可爱的粉丝。

2025-08-13 10:47:30 271 1

原创 超好用的数论基础,妈妈再也不怕我做不出来数论打卡题了

这没什么好说的,每当遇到一个素数,筛掉它所有的倍数唯一要注意一个小优化 for (int j = i * i;j <= n;本来应该是 for (int j = 2 * i;j <= n;j += i) 但是 2 * i 到 i * i 之间的 j 已经被筛过一遍了。

2025-08-12 10:45:43 582 1

原创 从BFS到负权图薄纱最短路问题

我认为BFS层次最短路最关键的特征有两个,首先是层次(通过队列先入先出的特征来实现),其次是边权为1,如果边权不是1的话那么同样走一步就会有的步伐大有的步伐小,根本无法判断那条路最短。

2025-08-11 21:57:11 501 1

原创 线段树从入门->懒标记->权值->主席树

【代码】线段树从入门->懒标记->权值->主席树。

2025-08-05 13:22:57 132 1

原创 字典树模板与遍历

字典树

2025-07-17 12:24:40 305 1

原创 KMP从模板到Z函数

3,马拉车老王与kmp的孩子(Z函数)2,倒序kmp提取回文。

2025-07-17 12:14:54 140

原创 字符串哈希(双哈希)

开门!值夜者!

2025-07-14 21:41:23 382

原创 用迭代实现DFS【map】

我闻到了【替罪】的芬芳

2025-05-31 13:48:03 134

原创 DFS+字典序+排列组合

我听见了【破万法】的回响

2025-05-31 13:36:36 132

原创 被一道概率题骗了,头一次见到无效输入,路过的都给我进来受骗

我看到了生生不息的激荡

2025-05-31 13:30:53 266

原创 有队列解决报数类型的问题

【代码】有队列解决报数类型的问题。

2025-05-14 19:41:09 152 1

原创 栈的底层实现

【代码】栈的底层实现。

2025-05-14 01:29:57 133 1

原创 用递归实现各种排列

这个枚举与前两个不同,因为是排列的枚举,所以不要求字典序输出,因此问题转换成了如何避免重复,所以我专门开了一个状态数组来记录这个数位上要取的值是否已经被取过了。注释的部分是递归的剪枝操作,避免过早取到太大的值导致后面的值无法取,加上剪枝还是能省不少时间的。为了满足字典序的输出,我采用了逐位递归的方法(每一位的所能取到的最小值都大于前一位)

2025-05-08 23:35:51 289 1

原创 每日一一一题

【代码】每日一一一题。

2025-02-26 16:46:47 163 2

原创 set集合的应用实例(set.lower_bound)

【代码】set集合的应用实例(set.lower_bound)

2025-02-24 22:35:11 184

原创 倍增法的理解以及具体实现

【代码】倍增法的理解以及具体实现。

2025-02-21 15:01:40 164

原创 单调队列模板

如果用暴力法,每一次窗口的滑动都要比较k个元素,复杂度为O(nk),而用单调队列的数据结构每个元素都至多入队一次,出队一次,复杂度为O(n)。

2025-02-10 21:54:59 142

原创 队列的STL实现

【代码】队列的STL实现。

2025-02-05 19:27:50 104

原创 链表:从基本实现到间接实现(以环形链表为例)

这里需要注意的是在进行删除节点等操作时,头结点的存在会大大优化线型链表的逻辑结构,而对于环形链表,头结点的存在就显得可有可无了,但习惯上我们依旧在初始化链表时设立头结点。

2025-01-31 15:31:30 131

原创 01背包问题

我们再来看另一种较特殊的01背包问题——装箱问题

2024-12-23 21:29:11 324

原创 BFS最短路径问题模板题

在涉及最短路径问题时,应该在不断向外遍历时多加一个记录遍历层数的变量(上题用的时step);如果说DFS是一条在地图上的贪吃蛇,一条道走到黑,直到走不通再return回去直到能走通,那么BFS就是以起点为中心不断向外扩散的水波一层层地向外蔓延。

2024-12-20 22:32:46 265

原创 DFS/BFS 模板题 (迷宫题)

但在涉及最优解时BFS很有用,因为在BFS中,你可以使用队列来存储待搜索的节点。起始点首先加入队列中,然后不断从队列中取出节点,检查它是否是目标节点。如果不是,就将它的所有未被访问过的邻居加入队列中。这样,队列中的节点总是按照它们距离起点的距离排序,先加入队列的节点总是先被取出来搜索。这种题首选DFS 非常直观从起点开始搜索,不走回头路。BFS(广度优先)在这道题里不是很方便。

2024-12-19 20:36:15 241

原创 DFS/C++ 以蓝桥杯全球变暖问题为例

【代码】DFS/C++ 以蓝桥杯全球变暖问题为例。

2024-12-13 10:09:08 190

原创 算法/C++ 手写二分法及例题

【代码】算法/C++ 手写二分法及例题。

2024-12-05 21:13:07 202

原创 算法/c++ 二分法在STL中的具体实现(lower/upper_bound)

【代码】算法/c++ 二分法在STL中的具体实现。

2024-12-04 17:25:59 137

原创 算法/C++ 二叉树的创建并用BFS遍历

1,BFS(广度优先,逐层遍历)这是我们要创建的二叉树。

2024-11-29 18:18:38 322

原创 算法/C++ STL排列&手动可选择排列

简单明了,全靠 next/prev_permutation 函数,这是一个非常好用的排序函数,但无法进行剪枝的操作,即在明知当前排列已经错误时无法停止,会导致超时。这里没有具体的例子大致是满足一个具体的条件后return结束递归。这是就需要我们手写一个排列函数。

2024-11-28 22:12:43 488

原创 离散化/C++ STL编码+set去重

用set集合去重,可以理解为集合元素的唯一性。

2024-11-26 21:28:02 326

原创 算法/C++ 离散化手工编码

【代码】算法/C++ 离散化手工编码。

2024-11-25 23:05:08 152

原创 算法 差分修改 极简

【代码】算法 差分修改。

2024-11-24 19:58:11 152

原创 算法 用ST算法解决RMQ(区间最值问题)

再接下来 q 行,每行两个整数 l 和 r,表示询问第 l 个数到第 r 个数内最大值和最小值的差。接下来 n 行,每行一个数 ni​。第一行两个数 n,q。

2024-11-20 14:00:34 166

原创 算法 二分法查找的利弊

正常的查找肯定是要遍历一整个数组的,因为每一个数都可能是你要找的数,但二分查找可以通过不断更新边界来确定范围做到非常快,这种做法的思想性很好,但个人感觉实用性不好,因为使用二分法的前提是数组已经排好序了,如果遇到无序的数组,只能先排序再查找,可如果你先排好了序,那么你查找本身就失去意义了,因为待查找数本身的位置很可能已经被排序所改变了,所以真正的应用场景中,直接用find函数会更好。

2024-11-19 21:37:25 203

原创 CPP/STL 利用快慢指针判断链表中是否有循环

【代码】CPP/STL 利用快慢指针判断链表中是否有循环。

2024-11-17 21:59:41 176

原创 CPP STL substr 与 copy,以复制小数的整数部分与小数部分为例

copy虽然无法达到push_back的效果但可以应用于各种类型的动态数组中。通过构造string函数直接提取整数部分与小数部分。这里substr的作用是提取,是有一个返回值的。这里还可以再简便一点省去计算索引的过程。

2024-11-13 13:06:48 282

原创 CPP STL容器一维二维vector的用法

【代码】CPP STL容器一维二维vector的用法。

2024-11-11 19:28:50 207

原创 string对象补充,C 风格的字符串构造

【代码】string对象补充,C 风格的字符串构造。

2024-11-10 22:02:07 159

原创 C++算法 查找一个字符串或整数或小数中任意一个元素的索引(位置)

这个算法的高明之处在于不仅语言量很少,而且无论输入的是什么,有多长,都可以查找到其中的特定元素。以下这个例子是查找若干个小数中小数点的索引。

2024-11-10 21:55:05 416

空空如也

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

TA关注的人

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