随笔分类 -  算法简介

摘要:首先我们要明确一个方向,就是 FFT 的原理是单位根的几个性质: - 消去原理: ωtntk=ωnk - 对称原理:ωnk=ωnk+n2 - ωnk=(ωn1)k - ωniωnj(ij) 也就是说,只要满足以上条件,也就可以用类似的方法实现。 阅读全文
posted @ 2023-07-02 20:45 DengDuck 阅读(53) 评论(0) 推荐(0) 编辑
摘要:种树 在长度为 n 的数列中选择至少 k 个数字,他们都有价值,使得没有相邻的数字被取到,且数字之和最大。 求这个最大的数字之和。 我们考虑一个反悔贪心,首先用一个链表来维护数列,然后,每次贪心的选择最大的数字,并标记左右不可用。 但是这个贪心显然是错的,我们再直接将这三个数字合并为一个,价 阅读全文
posted @ 2023-05-09 14:11 DengDuck 阅读(39) 评论(0) 推荐(1) 编辑
摘要:例题一 i=1nni  首先很容易想到直接求解,对于较大的数据,O(n)做法无法通过。 注意到函数y=nx的图像如下: 不难发现,随着 x 增大 ,y单调不增,这说明对 阅读全文
posted @ 2023-05-08 19:34 DengDuck 阅读(46) 评论(0) 推荐(0) 编辑
摘要:离散傅里叶变换(Discrete Fourier Transform,简称DFT)的思想是利用 ωnk将一个多项式转为点值表示法。 对于一个多项式A(x)=a0+a1x+a2x2+...+an1xn1,我们按照前文所云,将所有的 ωnk作为 x 代入。 于是我们得到了 n1 个点,使用复数形式表示,成为一个数组 (y0,y1,y2,...,yn1)的。 这被称为 A(x) 的傅里叶变换。 阅读全文
posted @ 2023-04-29 13:21 DengDuck 阅读(131) 评论(0) 推荐(1) 编辑
摘要:我们都知道经典的 O(nlogn) 求解 LIS 需要写一个很烦的二分,但是树状数组就不用啦。 观察动态规划转移方程: fi=maxajaifj+1 注意到这就是一个二维偏序问题,所以树状数组轻松解决,对于我这种数据结构爱好者简直是福音。 阅读全文
posted @ 2023-04-29 09:53 DengDuck 阅读(145) 评论(0) 推荐(0) 编辑
摘要:这个算法的用途是,给出 n 个点,第i个点为(xi,yi),它可以找出一个 n1 次的多项式f(x),以便求出x值为其他情况。 阅读全文
posted @ 2023-04-25 18:10 DengDuck 阅读(16) 评论(0) 推荐(0) 编辑
摘要:KMP是一个求解字符串匹配问题的算法。 这个东西的核心是一个next数组,nexti表示字符串第0i项的相同的前缀和后缀的最大长度。 这里的前缀和后缀概念略有不同, 阅读全文
posted @ 2023-04-25 18:08 DengDuck 阅读(27) 评论(0) 推荐(0) 编辑
摘要:这是一个有助于分解组合数来求解的定理,适合模数小,数字大的问题。 有质数 p,对于n,m,如果n=k1p+b1,m=k2p+b2,有 CnmCk1k2Cb1b2(modp) 阅读全文
posted @ 2023-04-25 18:07 DengDuck 阅读(191) 评论(0) 推荐(0) 编辑
摘要:浅谈倍增法求解LCA让深度大的一点不断向上跳,直到两点深度相等 如果两点深度相同但是并不相等,可以两点一起跳 在随机数据下表现优异,因为树会比较平衡,所以近似O(logn) 通常会被卡成单次O(n),其实不难构造,可以构造一个深度大的树(比如链) 阅读全文
posted @ 2022-06-09 21:05 DengDuck 阅读(495) 评论(0) 推荐(0) 编辑
摘要:浅谈BSGS和EXBSGS我们考虑找到一个 k 和 一个 r 使得上述式子成立,这个并不难 首先枚举 r ,显然有 r(1rm) 注意这里和广大打法不同 因为广大打法是枚举余数,这里枚举的是相反的 然后把右边式子的值哈希存下,枚举左边的 k(1km) 对于左边枚举求出的值看看哈希数组是否存在对应的右边的值,如果有,那么就是一个解 搞出一个最小的解好像也不是很难吧..... 阅读全文
posted @ 2022-05-28 12:40 DengDuck 阅读(404) 评论(0) 推荐(0) 编辑
摘要:【速通】传递闭包传递闭包其实就是求出 i 可不可以直接或间接到达 j 我们用 邻接矩阵 存储 用 弗洛伊德,如果 i 能到 k,且 k 能 到 j,则 i 可以到 j 求一遍,复杂度O( n3 ) 阅读全文
posted @ 2021-10-22 21:28 DengDuck 阅读(141) 评论(1) 推荐(0) 编辑
摘要:【远古黑历史】List链表及其功能首先,什么是STL? STL,全称 Standard Template Library,也就是标准模板库, 它是在惠普实验室开发出来的,它主要出现到C++中, STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器), 然后,STL需要调用一个头文件 阅读全文
posted @ 2021-07-26 20:15 DengDuck 阅读(89) 评论(0) 推荐(0) 编辑

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