![](https://img-blog.csdnimg.cn/20200226192100363.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
【特别专栏】那些年,我们一起追过的算法
文章平均质量分 97
在我们走过的季节里,路旁盛开的花朵也在不断变化,那个季节盛开的花是叫什么来着? 轻轻摇曳着,一碰会微微刺痛,靠近一闻,隐约有股青涩的阳光的气息。 那气息渐渐地淡去,我们也在慢慢长大。可是,那朵花一定还在某个地方盛开着……对,我们永远都会继续实现那朵花的愿望。本文是回忆我们所追过的算法和数据结构。
Ljnoit
Copyright 2016-2024 Ljnoit
本人荣誉:第17届浙江省大学生程序设计竞赛场外赛金牌️
展开
-
【C++】dfs序与树上差分
dfs序与树上差分 引入 dfs序就是用递归的方法遍历一棵树的顺序。 这是一个括号序列,有助于解决树上的很多问题。树上差分算法,是一个适用于树上区间操作的算法.它是差分数组,前缀和求解的树上拓展.众所周知,树这类特殊的结构,往往具有很多性质,而树上差分往往就是结合这些性质,进行高效率的处理.我们还需要知道一点,树上差分基本上不会出裸题,往往会和大量的算法结伴出行.树上差分,准确来说不是算法,而是一种优秀的思想.原创 2020-03-24 10:51:30 · 837 阅读 · 0 评论 -
【C++】AC自动机
我知道,很多人在第一次看到这个东西的时侯是非常兴奋的。(别问我为什么知道)不过这个自动机啊它叫作 `Automaton` ,不是 `Automation` ,让萌新失望啦。切入正题。似乎在初学自动机相关的内容时,许多人难以建立对自动机的初步印象,尤其是在自学的时侯。而这篇文章就是为你们打造的。笔者在自学 AC 自动机后花费两天时间制作若干的 gif,呈现出一个相对直观的自动机形态。尽管这个图似乎不太可读,但这绝对是在作者自学的时侯,画得最~~妙不可读~~的 gif 了。另外有些小伙伴问这个 gif 拿什么画转载 2020-03-12 20:05:24 · 972 阅读 · 0 评论 -
【C++】矩形面积并、矩形面积交、矩形周长并(离散化、扫描线、线段树总结)
文章目录一.矩形面积并题目:Atlantis方法一:离散化方法二:扫描线方法三:线段树+扫描线二.矩形面积交三.矩形周长并一.矩形面积并题目:AtlantisPOJ-1151 HDU-1542 LA-2184 ZOJ-1128链接:https://vjudge.net/problem/HDU-1542方法一:离散化#pragma GCC optimize(3,"Ofast","...原创 2020-03-06 11:35:40 · 1435 阅读 · 0 评论 -
【C++】二分图
二分图百科名片举例定义二分图的判定——黑白染色例1 二分图判定题目描述输入描述输出描述样例输入样例输出思路代码二分图的最大匹配例2 二分图最大匹配之匈牙利算法题目描述输入描述输出描述样例输入样例输出思路代码例3 The Perfect Stall题目大意思路代码二分图的最大独立集例4 Girls and Boys代码例5 Knights in Chessboard思路二分图的最小点覆盖例6 Mud...原创 2020-03-05 11:13:02 · 1035 阅读 · 0 评论 -
【C++】字典树(trie树)
字典树(trie树)引入百科名片例1 单词查找树题目描述输入描述输出描述样例输入样例输出思路代码引入当我们走进图书馆的阅览室寻找书时,会不由自主地根据书架上的分类标签寻找自己所喜好的书籍;当打开电脑中的资源管理器时,我们会看到一层一层的目录结构。它们的存在,方便了我们生活中的一个重要的问题——检索。在信息学竞赛( Olympiad in Informatics ,简称 OI)的学习过程中,我...原创 2020-03-04 11:18:02 · 513 阅读 · 0 评论 -
【C++】树型动态规划
树型动态规划摘要例1 没有上司的舞会题目描述输入描述输出描述样例输入样例输出思路1 定义状态:2 转移方程:3 初始值:4 答案:代码例2 数字转换题目描述输入描述输出描述样例输入样例输出样例说明数据范围代码例3 二叉苹果树题目描述输入描述输出描述样例输入样例输出数据范围思路1 状态定义2 转移3 初始4 答案代码例4摘要之所以这样命名树规,是因为树规的这仙特殊性:没有环,dfs是不会重复,而...原创 2020-03-03 08:57:39 · 344 阅读 · 0 评论 -
【C++】字符串匹配算法——KMP算法
背景介绍在文本编辑中,我们经常要在一段文本中某个特定的位置找出某个特定的字符或模式。再比如,在HTTP协议里的字节流,有各种关键的字节流字段,对HTTP数据进行解释就需要用到模式匹配算法。由此,便产生了字符串的匹配问题。KMP算法是由Knuth,Morris,Pratt三人共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间(n+m)内完成匹配查找,而不会发生退化,是一个非常...原创 2020-03-01 10:30:24 · 563 阅读 · 0 评论 -
【C++】单调队列优化动态规划
引入可用单调队列优化的动规有一大类题型,它们多半都有一个特征:可以化归为序列中定长区间的最值问题。注意这里必须是定长区间,否则应用RMQ算法。下面举一个例子:输入:第一行两个正整数N(N<=600000),M。接下来一行N个数。输出:对于每个区间[i,i-M+1],输出其中的最小值思路:很显然这道题数据大到不允许利用RMQ的各种O(NlogN)的算法,想到每一次找最小...原创 2020-02-29 09:43:22 · 350 阅读 · 0 评论 -
【C++】最近公共祖先 LCA
最近公共祖先百科名片最近公共祖先Lowest Common AncestorsLCA简单引入对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。红色的都是是A和B的公共祖先,但只有最近的C才是最近公共祖先。LCA问题是树上的一个经典问题,在很多方面有着广泛的应用,比如求LCP(最长公共前缀),接下来我们就来介绍...原创 2020-03-09 11:30:45 · 2910 阅读 · 0 评论 -
【C++】图论基础总结(图的遍历+最短路径算法)
什么叫图论?研究图的问题一门高深的学科。什么是图?就是由点和线组成的图形G=<V,E>G=graph V=vertex E=edge原创 2020-02-23 14:44:02 · 4270 阅读 · 0 评论 -
【C++】树状数组
什么是树状数组?顾名思义,就是用数组来模拟树形结构呗。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。树状数组可以解决什么问题?可以解决大部分基于区间上的更新以及求和问题。树状数组和线段树的区别在哪里?树状数组可以解决的问题都可以用线段树解决,这两者的区别在哪里呢?树状数组的系数要少很多,就比如字符串模拟大数可以...原创 2020-02-24 14:39:54 · 914 阅读 · 0 评论 -
【C++】强连通分量
有向图的强连通分量。例题题目链接:http://poj.org/problem?id=2186vjudge:https://vjudge.net/problem/POJ-2186题目大意:有一群牛,总数为N(N<=10000)。题目数据为牛之间的关系,比如说1仰慕2,2仰慕3等等,设这种仰慕是可以传递的,如果1仰慕2,那么1也会同时仰慕2仰慕的那些牛。(关系数e<=500...原创 2020-02-25 09:45:48 · 890 阅读 · 0 评论