算法
文章平均质量分 70
嘉庆帝
这个作者很懒,什么都没留下…
展开
-
算法总结之最小生成树
最小生成树的作用:有很多点,点点之间有很多边,边有边权,我们要选择一些边,将所有点互相联通,构成一颗树,即为最小生成树模板题:http://codevs.cn/problem/1231/算法:prim基本流程:开始从所有点 中任取一点,(通常取1号),然后找其他所有点离已经取得点构成的连通块最近的点,将其加入连通块,并将总代价加入这个点与联通块相连的边的边权,如此反复点数-1次原创 2016-08-23 16:05:52 · 800 阅读 · 0 评论 -
算法总结之欧拉回路
欧拉回路的作用:在一张有向或无向图中求出一笔画问题的具体画法。模板题:http://uoj.ac/problem/117算法:首先我们考虑如何判定这个图是否为欧拉回路这时候我们对于有向图和无向图有不同的判定方法。对于有向图,保证每个点的入度等于出度。对于无向图,保证每个点的度数为偶数。通常我们判断图是否联通,是在求欧拉回路(见下文)的原创 2016-10-01 08:13:08 · 6858 阅读 · 0 评论 -
算法 后缀数组
考完了NOIP,虽然D2脑子进水,然而还是目测水到了一等奖,避免了GG。也是时候开启一些新的算法了。思来想去,还是搞一下后缀数组吧。先简单说明后缀数组,是啥。字符串后缀知道吧。数组知道吧。后缀数组就是在将一个字符串的所有后缀按照常见的字典序排法,排一下。显然我们可以用stdsort来进行非常暴力的排序,然而复杂度为n^2logn,这并不优美。我们需要找到一种更高效的算法,有两种,一种是倍增,一原创 2016-11-30 20:01:14 · 341 阅读 · 0 评论 -
算法 KMP
恩,学完后缀数组,干脆想把AC自动机也给学了,然后发现貌似需要KMP的基础,于是打算顺便复习一下,顺便写个博客,增加下浏览量。KMP算法是什么,顾名思义(看毛片,大家都会吧,,,感觉黄段子乖乖的,好羞涩,)是K,M,P三个人几乎同时发现的一种线性字符串匹配算法。说白了就是一个比较短的a串和一个比较长的b串,让你看a串能否匹配于b串的某一个位置。传统的方法,就是n^2暴力匹配,虽然在随机数据原创 2016-12-03 14:32:01 · 346 阅读 · 0 评论 -
算法 tire树
打算学AC自动机,但思来想去,先学习一下tire树更加合适。tire数是用一棵树来表示一个字符串,从跟节点,到某个字符串结束的节点,经过的路径,就是这个字符串,这样子我们可以比较高效的查找,在tire数内是否有一个字符串。先放出我的模板:struct tire{ int tot,root,child[max_node][max_char],sum; bool vis[原创 2016-12-03 14:39:17 · 991 阅读 · 0 评论 -
算法 AC自动机
这篇博客拖了好久好久,真是尴尬,原因大概是我感觉很多东西,都是直觉,有种只可意会不可言传的味道,想完全搞懂,但后来仔细想想,ac自动机好像本来就不是一个非常非常确定的算法,比如说,我该拿觉很多情况可以把算法卡成n^2。所以拖了很久,酱紫。 先谈谈AC自动机是什么。我们知道KMP,可以快速的对一个字符串,用一个模板进行匹配。然而当我们有多个模板的时候,再去重复的使用KMP算法就显得不原创 2016-12-13 19:21:48 · 242 阅读 · 0 评论 -
算法 SG函数
昨天我们省的大神犇xys大佬,要跟我玩一个小游戏,大概是有几个数,每次你可以选择一个,减去某个值,最后到谁这些数都被减成0,谁就输。很不巧,我一眼就看穿了这是一个先手必胜的游戏,然后我选了先手,然后……我记错了必胜策略,然后就在大佬的微笑中输掉了比赛……据说这个SG函数的证明过程比较复杂,我就大概会先写一下,他是啥,怎么做,就不去证明了。我们定义必输的局面的SG函数值为0,原创 2016-12-16 17:53:46 · 1044 阅读 · 0 评论 -
FFT学习笔记(DFT,IDFT)
昨天参悟了一天FFT,总算是理解了,今天的莫比乌斯反演也不太懂,干脆弃疗,决定来认真水一发博客。什么是FFT?FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换(DFT)的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。FFT的作用?主要用于加速多项式乘法(形如an x^n + a(n -原创 2017-01-14 11:32:03 · 34655 阅读 · 3 评论