随笔分类 -  算法模板

摘要:再探快速傅里叶变换(其四) 多项式操作 省选前夕爆补一波多项式全家桶,存一些板子 多项式乘法 不解释。注意如果式子太复杂,直接全部DFT再按原式子算,最后IDFT。这里封装好是为了简化模板代码,而且可以方便的换成任意模数NTT void poly_mul(ll *a,ll *b,ll *c,int 阅读全文
posted @ 2020-07-07 21:13 birchtree 阅读(712) 评论(1) 推荐(0) 编辑
摘要:决策单调性优化dp学习笔记 @[toc] 决策单调性的定义 四边形不等式 定义1.1.1 : 若函数w(x,y)(Z×ZZ)对于a,b,c,dZ,其中$a 阅读全文
posted @ 2020-05-22 16:28 birchtree 阅读(4363) 评论(2) 推荐(11) 编辑
摘要:网络流常见建图套路总结(重制版) 前置知识 网络流的基本算法:Dinic最大流,EK+SPFA求费用流 最小割,最小割最大流定理 二分图判定,匹配,相关性质 由于本文以建图方法为主,不涉及网络流算法的具体实现,以上前置知识一边看一边学也可以 最大流 二分图最大匹配与多重匹配 二分图匹配:给定一个二分 阅读全文
posted @ 2020-05-18 19:36 birchtree 阅读(5262) 评论(8) 推荐(9) 编辑
摘要:二项式反演学习笔记 二项式反演(Binomial Inversion)是一种反演,它基于容斥原理.它可以把计数问题中求解"恰好X个的方案数"转化为求解"至少X个的方案数",让问题变得更简单。 约定: Cnm表示从n个数里选m个数的方案数,等价于\binom.另外为了方便推式子,规定 阅读全文
posted @ 2020-04-30 21:40 birchtree 阅读(1717) 评论(2) 推荐(0) 编辑
摘要:动态DP学习笔记 约定: 若无特别说明,数组下标从1开始. 若无特别说明,矩阵的下标从0开始(这是为了和代码一致,而代码这样实现是为了节省内存) 在公式中,矩阵用粗斜体表示,如\bm 若无特别说明,对于有根树上的结点x,child(x)表示它儿子的集合,son(x)表示它的重儿子 对 阅读全文
posted @ 2020-04-11 20:03 birchtree 阅读(292) 评论(0) 推荐(0) 编辑
摘要:再探快速傅里叶变换(FFT)学习笔记(其二)(NTT) 写在前面 为了不使篇幅过长,预计将把学习笔记分为四部分: DFT,IDFT,FFT的定义,实现与证明:快速傅里叶变换(FFT)学习笔记(其一) NTT的实现与证明:快速傅里叶变换(FFT)学习笔记(其二) 任意模数NTT与FFT的优化技巧 多项 阅读全文
posted @ 2020-02-07 16:09 birchtree 阅读(1092) 评论(1) 推荐(2) 编辑
摘要:再探快速傅里叶变换(FFT)学习笔记(其一) 写在前面 为什么写这篇博客 笔者去年暑假刚刚学习过FFT,NTT的一些基础应用。但当时对FFT和NTT的理解还不够深入。本博客参考2016年国家集训队论文中雅礼中学毛啸的《再探快速傅立叶变换》,对之前学习时的不足之处做了补充。 为了不使篇幅过长,预计将把 阅读全文
posted @ 2020-02-06 15:22 birchtree 阅读(2632) 评论(1) 推荐(1) 编辑
摘要:3张图带你看懂扩展KMP(EXKMP) 约定: 对于一个字符串s,我们规定s[l,r]表示字符s[l],s[l+1],s[l+2],,s[r1],s[r]按顺序拼接成的字符串.s的下标从1开始.s[1,i](i[1,n])表示s的一个前缀,$s[i,n](i 阅读全文
posted @ 2020-01-03 22:42 birchtree 阅读(527) 评论(0) 推荐(0) 编辑
摘要:浅谈高维前缀和 引入 在用一般方法计算二维前缀和的时候,我们可以写出如下代码 同理可以写出三维前缀和 我们发现在求前缀和的时候需要一个容斥,当维数为t的时候容斥的时间复杂度是2t,随着维数变高,复杂度增大的很快 高维前缀和的一般优化 但是,我们可以把高维前缀和的总时间复杂度从$O(n^t2 阅读全文
posted @ 2019-11-12 17:30 birchtree 阅读(1162) 评论(2) 推荐(4) 编辑
摘要:用生成函数推导数列的通项公式(重制版) 约定: [p(x)]={1,p(x)为真0,p(x)为假 fn(x)\(\)(f(x))n f(n)(x)表示f(x)n阶导数,一阶和二阶 阅读全文
posted @ 2019-09-23 22:06 birchtree 阅读(2808) 评论(5) 推荐(2) 编辑
摘要:一些约定 本文中所有未知数如没有特别说明,均为整数 gcd(a,b)表示a,b的最大公约数 a|b表示a能整除b []\(10.\)[n=1]n=1的时候为1,否则为0 ω(n)表示n本质不同的质因子个数 在没有说明的情 阅读全文
posted @ 2019-08-30 17:43 birchtree 阅读(1224) 评论(6) 推荐(2) 编辑
摘要:Meet in the Middle 总结 1.算法模型 1.1 Meet in the Middle算法的适用范围 如果将搜索的路径看成一个有向图,Meet in the Middle 算法适用于求有向图上从A到B,且长度为L的路径数。 换句话说,Meet in the Middle 算法适用于求 阅读全文
posted @ 2018-12-17 19:36 birchtree 阅读(2976) 评论(0) 推荐(1) 编辑
摘要:1.格雷码的概念1.性质格雷码(Grey Code),又叫循环二进制码或反射二进制码,是一种编码方式,它的基本特点是任意两个相邻的格雷码只有一位二进制数不同。 常用的二进制数与格雷码间的转换关系如下表: 从表中我们可以发现任意两个相邻的格雷码只有一位二进制... 阅读全文
posted @ 2018-05-05 22:41 birchtree 阅读(850) 评论(0) 推荐(0) 编辑
摘要:M斐波那契数列 此题对数学基础要求较高 来源矩阵乘法_百度百科 一个m*n的矩阵是一个由m行n列元素排成的矩形阵列。矩阵里的元素可以是数字符号或者数学式. 形如[acbd][abcd]的数表称为二阶矩阵,其中a,b,c,d称为这个矩阵的元素。 形如 [x1x2][x1x2] 的有序对称为列向量 设 阅读全文
posted @ 2018-05-05 20:17 birchtree 阅读(177) 评论(0) 推荐(0) 编辑
摘要:NOIP比赛中如何加速c++的输入输出 在竞赛中,遇到大数据时,往往需要更快的读取方式。由于比赛中输出一般规模较小,本文只讨论输入如何加速. 现在我们生成1000000个随机数,构成1000*1000的矩阵,然后输入比较时间(Win 10系统) #include<iostream> #include 阅读全文
posted @ 2017-12-10 21:30 birchtree 阅读(3788) 评论(7) 推荐(3) 编辑
该文被密码保护。
posted @ 2017-12-09 16:51 birchtree 阅读(11) 评论(0) 推荐(0) 编辑

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