- 博客(20)
- 收藏
- 关注
原创 更新公告!!!
距离上一次更新刚刚好过去了100天,也经历了考试周,暑假集训,不知不觉开学2星期了。正好是新生入学,突然想起来好久没有更新博客了。经过了一年的学习,对学习算法也有了初步的框架。因此,我会尽可能保持2天一更,因为随着学习的深入,算法开始变得晦涩难懂,需要更多的时间去消化。明天就是ICPC网络赛了,只能加油了!正式更新从星期一开始,希望是一种鞭策!
2024-09-14 20:34:42 108
原创 背包问题(01背包及其优化(滚动数组和逆序枚举))
终于是完结了AC自动机,接下来开个新坑——背包问题,背包的种类还是很多的,之前有学过,但都是这里看一点,那里看一点,导致现在都搞混了,所以重新系统看看这方面的内容。先从简单的入手——01背包,那么为什么叫01背包呢?我的理解是01背包其实就是有没有的问题,所以01就代表了两种状态,取或不取。01背包适用于每种物品只有一件的情况,也是最简单的,但是会碰到各种奇怪的“WA法”,所以需要我们进行优化。
2024-06-05 20:33:07 1286
原创 AC自动机(查询)
上面讲了AC自动机是如何建树和建自动机的,这里要讲的是AC自动机的查询和各个数组的功能和作用。其实AC自动机的查询和KMP算法是及其相近的,都是一个指针跑主串,另一个指针跑ne串(这里就是回跳边)。话都说到这了,不妨先来看看ne的真实用处吧。
2024-06-04 10:27:30 1218
原创 AC自动机(关于建字典树和构建自动机)
所谓回跳边就是当前节点在先前已经建好的树的链上所能连接上的位置,举个例子,比如有两个单词,her和she,我们知道在建字典树的时候,这两个单词是被存在不同的链上的,假如我们已经建好了树,在我们构建自动机的时候,我们走到了she中的e位置,那么从前后缀的角度,两个单词中“he”的部分是公共的,我们就可以将she中的e接到her中的e上,这样我们之后在检索求答案的时候就可以忽略掉重复部分,从非重复部分开始进行下一步操作。第一步,建一棵Trie树,这一部分和我上次发的是一样的,建树能有什么坏心思呢?
2024-06-03 13:40:07 730
原创 基础数学内容重构(后缀0个数)
我们知道,后缀0其实是由一个一个10乘上去的,所以我们需要搞清楚10是怎么来的,我们知道,像10,20,30这些已经很明确告诉我们有10的存在,那么还有呢?看上去比较复杂,但是通过化简我们可以知道以上式子就是求(n + 1)!,这里化简的过程就不展示了,比较基础。那么我们如何高效地求出后缀0的个数呢?这些数学内容相对比较基础,只要能够记住原理就可以非常熟练的用出来,但好像比赛上没什么用,毕竟太偏了,而且体型比较单一。
2024-06-01 19:24:30 616
原创 数据结构(Trie树(字典树))
我们回想一下我们是怎么查字典的(这里就拿查英语单词举例子,毕竟英语烂,比赛都要靠字典续命,中字字典好久没用过了),我们会先找到首字母的区域,而后在这个区域内依次找接下来的字母,那么你就已经能够了解Trie树的构造了。我们需要一些数组来存储并维护,ch数组,存储的是叶子信息,cnt数组存储的是完整的单词在文本中出现的次数,s是读取文本信息,但是众所周知,字母是有顺序的,ch数组如果存储的是字母信息,怎么将信息传递下去呢?以上是存储的内容,查询其实也是如此,就像查字典一样,从根到尾。
2024-05-31 14:52:58 714
原创 贪心算法拓展(反悔贪心)
相信大家对贪心算法已经见怪不怪了,但是一旦我们的决策条件会随着我们的步骤变化,我们该怎么办呢?有没有什么方法可以反悔呢?今天就来讲可以后悔的贪心算法,反悔贪心。
2024-05-30 19:00:09 1482
原创 并查集拓展(带权并查集)
在我们写题的过程中,在一棵树上往往有时不止只有一种关系,我们来看下面这个例子:https://www.luogu.com.cn/problem/P2024https://www.luogu.com.cn/problem/P2024动物王国中有三类动物 𝐴,𝐵,𝐶,这三类动物的食物链构成了有趣的环形。𝐴吃 𝐵,𝐵 吃 𝐶,𝐶 吃 𝐴。现有 𝑁 个动物,以 1∼𝑁 编号。每个动物都是 𝐴,𝐵,𝐶 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 𝑁N个动物所构成的食物链
2024-05-28 21:13:56 909
原创 基础算法(并查集)
在一颗庞大的树中,我们有时候不需要将每一个点的父亲和孩子分的明明白白,有时往往只要找到他们最终的归宿就可以了,因此,我们往往需要对树进行一些操作,将每一个点的最终祖先记录下来就可以了。这就是并查集的初衷。
2024-05-27 19:36:48 1061
原创 基础算法(前缀和和二维前缀和)
在上一次训练题解中我提到了前缀和和二分两种比较基础的算法,今天来巩固一下前缀和和二维前缀和的相关内容。让我们先来了解前缀和是什么。在一个数组中,我们有时需要取出一段区间内元素的和,我们可以通过循环语句一次一次遍历,但是有没有什么东西不需要如此繁琐地去进行操作呢?由此,我们可以在元素输入时就对其进行预处理,记录下从头元素到当前元素的和,并记录下来。为什么呢?
2024-05-20 21:29:39 916 1
原创 5.18下午集训队训练题解报告
第一次写题解,然后今天怀着玄学的心去洛谷签了个到,宜:打模拟赛,AK碾压全场,虽然水平有限,但是今天做题居然真的出人意料的顺,拿了好几个深绿,来看详细内容:你有55种不同面值的硬币,每种硬币的价值等于前55个三角数中的一个: 1, 3, 6, 10, 和 15。这些硬币种类数量充足。你的目标是找到需要的最少硬币数量,使它们的总价值恰好为𝑛。我们可以证明答案总是存在。
2024-05-18 15:26:21 1560
原创 基础数学内容重构(快速幂)
今天来复习了一下快速幂相关的知识,其实早在初中,我就早知道快速幂的应用,有时,老师让我们计算2的高次方的时候,我就会先算2次方,进而求出4次方,以此类推,我总能算的又快又对,其实这就是快速幂。作为一种数学工具,明白其原理和推导是十分重要的。
2024-05-15 22:21:52 413
原创 关于接下来的学习计划
我打算接下来先把莫队的更多拓展放一放,因为就我的脑子,我认为我还是需要沉淀一下,我觉得莫队不是一种特别好上手的算法,之前在机房,我的队友说不要学莫队了,我有点恍惚,我不知道是因为在比赛中他的作用不大还是因为莫队太简单,他们都会了(如果是后者那我就要更加加紧学了)。接下来我打算把我之前学习的有关图论,数据结构的内容重新整理一下,毕竟这学期还是要数据结构考试的,而且我认为我的指针学的稀烂,借此机会重新加深一下印象,同时我也要学习一些数学方面的知识,毕竟队伍里没有一个数学大佬带飞,还是要均衡发展。
2024-05-15 14:30:22 468
原创 莫队算法拓展(回滚&不删除莫队)
上一篇讲了带修莫队的具体内容,在我看来带修莫队的思路比较清晰,无非是在跑区间的过程中加入元素的修改,只需要考虑查询与修改的时间相对性就可以了。这次要分享的是另一种莫队算法的拓展——回滚&不删除莫队。还是先贴一道经典例题。
2024-05-14 14:39:25 1086
原创 莫队算法拓展(带修莫队)
上一篇讲了基础的莫队算法,个人觉得只要理解入队和出队的操作以及如何对出入进行数据处理就可以快速上手莫队。今天带来的是莫队算法的小拓展,带修莫队。带修莫队,顾名思义就是在莫队跑区间的过程中对数组的部分内容进行修改,变化,然后继续跑基础莫队。
2024-05-13 15:47:21 1127
原创 基础莫队算法
从某种意义上说,莫队算法 属于那种理解起来比较抽象但是只要理解了就非常简单的一类算法,本质还是离不开暴力,适用于离线算法,如果要求是在线,则无法使用。接下来贴一道经典的模板题。
2024-05-11 12:54:42 941 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人