随笔分类 -  A -- 浅谈算法

摘要:线性基是竞赛中常用来解决子集异或一类题目的算法。(摘自百度百科) 线性基是一个整数序列的特殊集合,每个序列都至少存在一个线性基,同一个序列可以拥有多个不同的线性基;反过来,一个线性基只对应一个确定的序列。 线性基存在如下三条性质: 原序列中任意一个数都可以由若干个线性基内的数异或得到 线性基内的数无 阅读全文
posted @ 2020-09-17 22:34 Wolfycz 阅读(501) 评论(0) 推荐(1) 编辑
摘要:拉格朗日插值法:是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法(摘自某度百科) 首先我们需要知道,拉格朗日插值法有何用? 注:以下部分内容参考知乎:如何直观地理解拉格朗日插值法? 举例子永远是最好的方法 比如说,已知下面这几个点,我想找到一根穿过它们的曲线: k+1个点是肯定可以 阅读全文
posted @ 2019-03-29 22:44 Wolfycz 阅读(3868) 评论(0) 推荐(2) 编辑
摘要:在学习AC自动机之前,你需要两个前置知识: "Trie树" , "KMP" 首先我们需要明白,AC自动机是干什么的~~(用来自动AC的)~~ 大家都知道KMP算法是求单字符串对单字符串的匹配问题的,那么多字符在单字符上匹配该怎么办? 我们举个栗子 ——求 aabb 在 aabababbbabbabb 阅读全文
posted @ 2019-03-21 08:46 Wolfycz 阅读(321) 评论(0) 推荐(0) 编辑
摘要:KMP是啥?~~KMP当然是KMPlayer的简称啦~~ KMP算法是用来解决字符串匹配的一种算法,由D.E.Knuth、J.H.Morris和V.R.Pratt同时发现,然后它可以用来干啥呢?我们上个例题: 给定两个字符串S,T,问TS中出现了多少次,出现的起始位置不同即为不同 $O 阅读全文
posted @ 2019-03-06 12:19 Wolfycz 阅读(366) 评论(0) 推荐(0) 编辑
摘要:其实FWT我啥都不会,反正就是记一波结论,记住就好…… 具体证明的话,推荐博客: "FWT快速沃尔什变换学习笔记" 现有一些卷积,形如 Ck=ij=kAiBj Ck=ij=kAiBj $C_k=\s 阅读全文
posted @ 2019-02-26 08:46 Wolfycz 阅读(1182) 评论(0) 推荐(0) 编辑
摘要:首先我们给道题目:求i=1nμ(i) n105,我会O(nn)n107,我会O(n)线筛! n109,我…… 于是杜教筛就此被发明,它可以在$O(n^{\fr 阅读全文
posted @ 2019-01-14 11:59 Wolfycz 阅读(1898) 评论(1) 推荐(1) 编辑
摘要:很多情况下,我们会遇到在树上进行操作的题目,比如求树上路径长度为k的路径条数 大力枚举?每次枚举两个点暴力算距离,时间复杂度O(n3),高级数结维护一下O(n2logn),emmmm……,都TM高级数结维护都跑不了1w的数据,(╯°Д°)╯︵ ┻━┻ 大力枚举肯定不行了,我们得换 阅读全文
posted @ 2019-01-03 10:37 Wolfycz 阅读(667) 评论(0) 推荐(0) 编辑
摘要:前言 莫比乌斯反演~~(又称懵逼钨丝繁衍)~~,那种让人看了就懵逼的东西~~(其实是我太菜了)~~ 莫比乌斯反演在知道之后对解题十分有帮助,O(n)的柿子分分钟化成O(n) 那么,什么是莫比乌斯反演呢? 莫比乌斯反演 1.莫比乌斯反演 如果说,有f(n)g(n)是定义在 阅读全文
posted @ 2018-08-14 16:26 Wolfycz 阅读(608) 评论(0) 推荐(0) 编辑
摘要:BST(二叉查找树)是个有意思的东西,种类巨TM多,然后我们今天不讲其他的,我们今天就讲splay 首先,如果你不知道Splay是啥,你也得知道BST是啥 如上图就是一棵优美的BST,它对于每个点保证其左子树内所有点小于自己,右子树内所有点大于自己,而且这棵树高只有logn,所以找一个点只需 阅读全文
posted @ 2018-08-13 23:36 Wolfycz 阅读(652) 评论(0) 推荐(0) 编辑
摘要:前言 首先树链剖分需要使用到线段树知识,不会线段树的童鞋请移步至 "浅谈算法——线段树" 在做题中我们会看到一些“在一棵树上进行路径修改、求极值、求和”的题,乍一看能够用线段树解决,其实仅仅凭线段树是根本无法完成的。这时候,我们就需要用到一种看起来高级的复杂算法——树链剖分 基本概念 重儿子 :si 阅读全文
posted @ 2018-08-11 12:12 Wolfycz 阅读(999) 评论(0) 推荐(0) 编辑
摘要:网上的博弈博客和论文有很多,但是有些没有详细的证明,仅仅是给出了结论。今天作者将一些常见的博弈论模板集中起来,给大家介绍一下博弈论中一些单一游戏的决策和常见的Nim模板与证明。 注:下列游戏都建立在双方都有最优策略的情况下,若未加以说明,则每人每次至少取一个石子。 例1:取石子游戏之一 有两个游戏者 阅读全文
posted @ 2018-02-08 12:17 Wolfycz 阅读(5394) 评论(16) 推荐(11) 编辑
摘要:##一.前言 前面我们已经知道线段树能够进行单点修改和区间查询操作(基本线段树)。那么如果需要修改的是一个区间该怎么办呢?如果是暴力修改到叶子节点,复杂度即为O(nlogn),显然是十分不优秀的。那么我们能不能向区间查询一样把复杂度降到O(logn)呢? ##二.算法流程 线段树肯定是兹 阅读全文
posted @ 2018-02-04 22:06 Wolfycz 阅读(562) 评论(0) 推荐(1) 编辑
摘要:##前言 线段树作为高级数据结构,可以做非常非常多的事情,那么线段树到底是什么呢,我们就此了解下 ##一.基本概念 线段树并非什么特别高级的东西,顾名思义,它也就是一棵树。那么为什么叫线段树呢?因为树的节点上存的就是一些区间,也就是线段。那么它长啥样呢? 嗯,如上图,就是一个区间[1,9]的线段树。 阅读全文
posted @ 2018-02-04 22:04 Wolfycz 阅读(355) 评论(0) 推荐(0) 编辑
摘要:字符串算法在各大高级比赛中均有用到,所以,学习好字符串算法对我们而言十分重要。那么,今天我们就给大家介绍一个快速求回文串的算法,Manacher算法,我们也习惯性叫它马拉车算法。 ###一.引入 首先我们要知道什么是回文串——当一个字符串它从右到左和从左到右读是一样的,我们就称它为回文串。考虑一下最 阅读全文
posted @ 2018-02-04 21:44 Wolfycz 阅读(142) 评论(0) 推荐(0) 编辑
摘要:##一.引入 二分图匹配算法是一个非常有用的算法,我们首先从一个简单的题目引入。 给你n个水果,m个箱子,每个水果只能被放在指定的几个箱子里,每个盒子只能放一个水果,问如何安排能使的放在盒子里的水果最多。 怎么写?暴力,可以试试。但不管是暴力还是什么算法,都需要面对一个情况——后面的水果如果没盒子放 阅读全文
posted @ 2018-02-03 17:08 Wolfycz 阅读(935) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示