摘要: 若已知 n+1 个点值,则可构造出一个 n 次多项式 f(x)。这篇文章包含:拉格朗日插值的基本内容、随时加点查询 / x 取值连续时的做法,以及求 f(x) 的系数、自然数幂求和 和 几道题目。 阅读全文
posted @ 2021-04-16 11:29 maoyiting 阅读(29) 评论(0) 推荐(0) 编辑
摘要:通过狄利克雷卷积 得到 S(n) 关于 S(⌊n/i⌋) 的递推式。我们要找到一个合适的 g,使得 f∗g 和 g 都能快速求前缀和。 S(⌊n/i⌋) 是一个子问题,对 S(n) 递归求解并记忆化即可。 阅读全文
posted @ 2021-04-02 20:44 maoyiting 阅读(35) 评论(0) 推荐(0) 编辑
摘要:斜率优化,一种根据决策单调性来优化动态规划的思想。「HDU 3507」Print Article:直接转移是 O(n^2) 的。现在有一个很自然的想法:对于每个 i,去掉一些不必要的 j 的枚举。接下来考虑对于怎么样的 j 是不必要的。 阅读全文
posted @ 2021-03-15 14:56 maoyiting 阅读(31) 评论(0) 推荐(0) 编辑
摘要:多项式求逆:给定一个 n−1 次多项式 A(x),求一个多项式 B(x) 满足:A(x)B(x)≡1(mod x^n)。考虑倍增。假设已经求出了多项式 A(x) 在模 x^⌈n/2⌉ 意义下的逆元 B′(x),那么有: A(x)B′(x)≡1(mod x^⌈n/2⌉)。然后一波操作得到 B(x)≡2B′(x)−A(x)B′(x)2(mod x^n)。 多项式求逆通过递归求得某个多项式在模 x 的若干次幂下的逆元。 将两式相减得到:A(x)(B(x)−B′(x))≡0(modx⌈n2⌉)。 由于 A(x)∤x⌈n2⌉,那么有:B(x)−B′(x)≡0(modx⌈n2⌉)。 阅读全文
posted @ 2021-03-13 09:36 maoyiting 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 霍尔定理是判断二分图是否存在完美匹配的充要条件。首先假设 |X|≤|Y|(其中 X 是左部的点数,Y 是右部的点数)。 对于任意 X 的子集 a,设 b 是 a 能到达的点集的并(通过 a 可以唯一确定 b),都有 |a|≤|b|。 阅读全文
posted @ 2021-03-05 18:16 maoyiting 阅读(116) 评论(0) 推荐(0) 编辑
摘要:Min_25 筛的思想是把 1∼n 按质数与合数分类,分别考虑它们的贡献。大致分两步: Step1:对所有 x=⌊n/d⌋,求出不超过 x 的所有质数的 f 值之和。Step2:求解原问题,即对于所有 x=⌊n/d⌋,求出不超过 x 的所有数的 f 值之和。 阅读全文
posted @ 2021-03-01 17:11 maoyiting 阅读(76) 评论(0) 推荐(0) 编辑
摘要:一、基本思想 点分治是用来解决树上路径问题的一种方法。首先,给这棵树钦定一个根(不妨设为 x),再将这棵树上的所有简单路径分为两个部分: 第一部分:经过 x 的简单路径(设路径的两端为 (u,v),下同。u,v 在根 x 的不同子树内)。第二部分:不经过 x 的简单路径(u,v 都在根 x 的某棵子树内)。根据 分治 的思想,发现对于第二部分的路径可以作为一个子问题递归到子树内的点计算,于是我们对于 x 只考虑第一部分的路径即可。复杂度的瓶颈在递归次数上,每个分治子树的根节点不能随便选择。 阅读全文
posted @ 2021-02-23 16:41 maoyiting 阅读(88) 评论(0) 推荐(1) 编辑
摘要:记了寒假集训某天上午部分的内容,纠结了一下还是不公开了。普通生成函数:对于一个无穷序列 {a0,a1,a2,⋯},定义其 普通生成函数 为形式幂级数:∑{k=0->∞}=ak⋅x^k。 指数生成函数:对于一个无穷序列 {a0,a1,a2,⋯},定义其 指数生成函数 为级数 ∑{k=0->∞}=ak⋅x^k/k!。 阅读全文
posted @ 2021-02-20 20:09 maoyiting 阅读(111) 评论(0) 推荐(0) 编辑
摘要:原根具有和单位根一样的性质(证明略),NTT 其实就是把 FFT 中的单位根换成了原根。然后 NTT 就学完啦! NTT 解决的是多项式乘法带模数的情况,可以说有些受模数的限制,多项式系数应为整数。 阅读全文
posted @ 2021-02-17 21:14 maoyiting 阅读(111) 评论(2) 推荐(1) 编辑
摘要: *2800。异或差分(b[i]=a[i] xor a[i+1])、BFS、状压 DP。直接思考有些困难,需要对问题进行转化,有条有理地分析,有一定的思维难度。Description 有一个 01 序列 a1,a2,⋯,an,初始时全为 0。给定 m 个长度,分别为 l1∼lm。每次可以选择一个长度为某个 li 区间,对其进行翻转操作(0→1,1→0)。 求最少的操作次数,使得最后有且仅有 k 个位置为 1(k 个位置给定),其余为 0。 1≤n≤10^4,1≤k≤10,1≤m≤100。 阅读全文
posted @ 2021-02-17 14:17 maoyiting 阅读(91) 评论(0) 推荐(1) 编辑