随笔分类 - 算法模板
摘要:再探快速傅里叶变换(其四) 多项式操作 省选前夕爆补一波多项式全家桶,存一些板子 多项式乘法 不解释。注意如果式子太复杂,直接全部DFT再按原式子算,最后IDFT。这里封装好是为了简化模板代码,而且可以方便的换成任意模数NTT void poly_mul(ll *a,ll *b,ll *c,int
阅读全文
摘要:网络流常见建图套路总结(重制版) 前置知识 网络流的基本算法:Dinic最大流,EK+SPFA求费用流 最小割,最小割最大流定理 二分图判定,匹配,相关性质 由于本文以建图方法为主,不涉及网络流算法的具体实现,以上前置知识一边看一边学也可以 最大流 二分图最大匹配与多重匹配 二分图匹配:给定一个二分
阅读全文
摘要:二项式反演学习笔记 二项式反演(Binomial Inversion)是一种反演,它基于容斥原理.它可以把计数问题中求解"恰好X个的方案数"转化为求解"至少X个的方案数",让问题变得更简单。 约定: 表示从个数里选个数的方案数,等价于.另外为了方便推式子,规定
阅读全文
摘要:动态DP学习笔记 约定: 若无特别说明,数组下标从1开始. 若无特别说明,矩阵的下标从0开始(这是为了和代码一致,而代码这样实现是为了节省内存) 在公式中,矩阵用粗斜体表示,如 若无特别说明,对于有根树上的结点,表示它儿子的集合,表示它的重儿子 对
阅读全文
摘要:再探快速傅里叶变换(FFT)学习笔记(其二)(NTT) 写在前面 为了不使篇幅过长,预计将把学习笔记分为四部分: DFT,IDFT,FFT的定义,实现与证明:快速傅里叶变换(FFT)学习笔记(其一) NTT的实现与证明:快速傅里叶变换(FFT)学习笔记(其二) 任意模数NTT与FFT的优化技巧 多项
阅读全文
摘要:再探快速傅里叶变换(FFT)学习笔记(其一) 写在前面 为什么写这篇博客 笔者去年暑假刚刚学习过FFT,NTT的一些基础应用。但当时对FFT和NTT的理解还不够深入。本博客参考2016年国家集训队论文中雅礼中学毛啸的《再探快速傅立叶变换》,对之前学习时的不足之处做了补充。 为了不使篇幅过长,预计将把
阅读全文
摘要:浅谈高维前缀和 引入 在用一般方法计算二维前缀和的时候,我们可以写出如下代码 同理可以写出三维前缀和 我们发现在求前缀和的时候需要一个容斥,当维数为的时候容斥的时间复杂度是,随着维数变高,复杂度增大的很快 高维前缀和的一般优化 但是,我们可以把高维前缀和的总时间复杂度从$O(n^t2
阅读全文
摘要:Meet in the Middle 总结 1.算法模型 1.1 Meet in the Middle算法的适用范围 如果将搜索的路径看成一个有向图,Meet in the Middle 算法适用于求有向图上从A到B,且长度为L的路径数。 换句话说,Meet in the Middle 算法适用于求
阅读全文
摘要:1.格雷码的概念1.性质格雷码(Grey Code),又叫循环二进制码或反射二进制码,是一种编码方式,它的基本特点是任意两个相邻的格雷码只有一位二进制数不同。 常用的二进制数与格雷码间的转换关系如下表: 从表中我们可以发现任意两个相邻的格雷码只有一位二进制...
阅读全文
摘要:M斐波那契数列 此题对数学基础要求较高 来源矩阵乘法_百度百科 一个m*n的矩阵是一个由m行n列元素排成的矩形阵列。矩阵里的元素可以是数字符号或者数学式. 形如[acbd][abcd]的数表称为二阶矩阵,其中a,b,c,d称为这个矩阵的元素。 形如 [x1x2][x1x2] 的有序对称为列向量 设
阅读全文
摘要:NOIP比赛中如何加速c++的输入输出 在竞赛中,遇到大数据时,往往需要更快的读取方式。由于比赛中输出一般规模较小,本文只讨论输入如何加速. 现在我们生成1000000个随机数,构成1000*1000的矩阵,然后输入比较时间(Win 10系统) #include<iostream> #include
阅读全文