![](https://img-blog.csdnimg.cn/20190128154601425.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法学习小记
用以存放各类算法的学习小记、浅析、详解之类
Iking123
这个作者很懒,什么都没留下…
展开
-
左偏树&二项堆&斐波那契堆
左偏树定义左偏树(leftist tree 或 leftist heap),又被成为左倾堆、左偏堆,最左堆等。左倾树是一棵二叉树,它的节点除了和二叉树的节点一样具有左右子树指针外,还有两个属性:键值和零距离。(01) 键值的作用是来比较节点的大小,从而对节点进行排序。(02) 零距离(英文名NPL,即Null Path Length)则是从一个节点到一个"最近的不满节点"的路径长度。不满节点...原创 2019-04-05 16:06:50 · 878 阅读 · 1 评论 -
斯特林数小结(update gradually...)
概念斯特林数(Stirling number)是由18世纪数学家James Stirling提出的两类数。第一类:轮换数,将n个数排成k个非空的环(圆排列,有序)的方案数,用s(n,m)s(n,m)s(n,m)或[nk]\left[ \begin{matrix}n\\k\end{matrix} \right][nk]表示。还分为无符号第一类斯特林数su(n,m)s_u(n,m)su(n,...原创 2019-01-28 08:07:27 · 309 阅读 · 0 评论 -
线性基学习小记
定义基:在线性代数中,基(也称为基底)是描述、刻画向量空间的基本工具。向量空间的基是它的一个特殊的子集,基的元素称为基向量。向量空间中任意一个元素,都可以唯一地表示成基向量的线性组合。如果基中元素个数有限,就称向量空间为有限维向量空间,将元素的个数称作向量空间的维数。同样的,线性基是一种特殊的基,它通常会在异或运算中出现,它的意义是:通过原集合S的某一个最小子集S1使得S1内元素相互异或得...原创 2018-09-10 21:29:49 · 602 阅读 · 0 评论 -
Miller_Rabin素性测试学习小记
问题给出一个正整数n,判断它是不是质数。有一个简单暴力的方法:试除法,从2枚举到n−−√n\sqrt n,如果有一个数能整除n,则表明n为合数。但这么做的时间复杂度是O(n−−√)O(n)O(\sqrt n)的,当n的规模达到1016101610^{16}甚至更高时,基本上就会跑1s以上了。有什么更快的方法?费马小定理通过费马小定理我们知道,对于一个质数p,有:ap−1≡1...原创 2018-08-24 14:40:50 · 732 阅读 · 0 评论 -
Pollard_Rho大数分解学习小记
前言该算法用于对大数进行质因子分解。它的核心思想是:对于一个数N,若N不为质数,设N=c*d(c、d均大于1),我们找到一个c,递归分解c和d。生日悖论一个班有k个同学,至少有两名学生的生日是同一天的概率P是多少?正难则反,考虑容斥。P=1-任意两名学生的生日都不同的概率。k=1,P=0k=1,P=0k=1,P=0k=2,P=1−1∗364365k=2,P=1−1∗3...原创 2018-08-24 16:50:02 · 765 阅读 · 1 评论 -
快速沃尔什变换——FWT学习小记
用途FWT主要解决这样的问题,给出A(x),B(x),求Ck=∑i⊗j=kAjBkCk=∑i⊗j=kAjBkC_k=\sum_{i\otimes j=k}A_jB_k,其中⊗⊗\otimes表示and(按位与)/or(按位或)/xor(按位异或)运算中的一种。定义首先,A(x)可以表示成一个n维向量(a0,a1,...,an−1)(a0,a1,...,an−1)(a_0,a_...原创 2018-08-17 19:50:27 · 604 阅读 · 0 评论 -
圆方树/广义圆方树学习小记(gradually update...)
前言 日前,B组混进了几道仙人掌/无向图上乱搞的问题。正解就是这种我之前听都没听说过的数据结构——圆方树。定义仙人掌 先允许我介绍一下仙人掌。 一般而言,仙人掌的定义是:1)无向图;2)每条边最多在一个简单环中。这样就很毒瘤。 但有一些题不大一样,它的定义是这样的(据说国外的定义都是这样):1)无向图;2)每个点最多在一个简单环中。 不过,你不必太担心...原创 2018-07-14 21:44:10 · 2002 阅读 · 0 评论 -
nim游戏/阶梯nim游戏+SG函数/SG定理
引子 考虑下面一个问题: 给出N堆石子。A 和 B 轮流操作,A 先手。操作者在每一轮中必须取走一堆石子中的任意数量个石子(不能不取)。取完最后一个石子的人胜利。求谁胜。SG函数 对于每一堆石子,我们可设SG(i)=mex({SG(j)}),其中j为i的一种转移,而mex表示集合中最小没有出现过的自然数。设边界条件SG(0)=0。这样的话,SG(x)=x,且当SG(x)为0时...原创 2018-06-13 18:53:08 · 664 阅读 · 0 评论 -
回文串问题的克星——Palindrome Tree(回文树)/Palindrome Automaton(回文自动机)学习小记
前言 最近B组有一道我不会的题,赶紧学习。简介 我们知道,Manacher算法可以在O(n)O(n)O(n)的时间内求出以每个位置为中心的最长回文串(虽然我昨天还不知道Manacher算法是怎么做的)。但是如果要统计回文串的个数,Manacher就捉襟见肘了。于是,回文自动机闪亮登场! 回文自动机是解决回文串问题的一类数据结构。 这个数据结构比较新,是由来自战斗民族...原创 2018-02-03 11:22:19 · 4770 阅读 · 1 评论