摘要:
书接上回... 我们知道,我们在使用 FFT 时,靠的是单位根 \(\omega\)。 数学家证明这是复数域中唯一符合条件的数。 可是它的浮点误差和带来的巨大运算时间使我们有点不能接受。 于是,我们想想能不能找个替代品替代掉 \(\omega\)。 于是,原根就出现了! 原根的引入 阶 对于一个数 阅读全文
摘要:
从小学我们就知道 \(i=\sqrt{-1}\)。 复数一般写作 \(a+bi\) 复数四则运算 加法: \((a+bi)+(c+di)=(a+c)+(b+d)i\) 减法就是取个相反数。 乘法: \((a+bi)\times (c+di)\) \(=ac+(ad+bc)i+bd\times i^2 阅读全文
摘要:
引入 给出两个多项式 \(A,B\) ,计算它们相乘的结果。 我们能轻易写出 code: for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) C[i+j]+=A[i]*B[j]; 然后超时了。 FFT 是一种将多项式乘法优化成 \(O(n\log n)\) 的神仙 阅读全文
摘要:
T1 T4 杀卵题不说。 做了 COCI 的原题。 T3 Rolete 为什么先说 T3 ,因为 T3 很简单。 首先先预处理出按 \(x\) 次按钮需要的时间。 根据直觉,我们观察到一个显然的贪心:如果在 \(x\) 按了 \(p_x\) 次,那么在 \(x-1\) 拉的次数 \(p_{x-1}\ 阅读全文
摘要:
介绍 拉格朗日差值是设计一条次数为 \(n-1\) 次的多项式穿过 \(n\) 个点。 我们知道,给定 \(n\) 个点确定一条唯一的 \(n-1\) 次多项式。 算法 我们引入一个开关。 对于 \(x_1,x_2,x_3\) ,我们想让当 \(x=x_1\) 时,\(g(x)=y_1\) ,当 \ 阅读全文
摘要:
\(01\) 背包的 trick。 Link. 做法 \(1\) 暴力背包。超时。 做法 \(2\) 一个显然的性质就是,按 \(c_i\) 归类,先用价值大的。 如果无法更新背包,直接退出循环即可。 亲测能获得 85pts 的好成绩。 时间复杂度同暴力背包。(理论) 做法 \(3\) 如果你认真打 阅读全文
摘要:
学到了一类题的通用方法。 我们考虑位置贡献。令原来的数为 \((A,B)\) ,新数为 \(C\) 。 有状态: \((A,B),(B,A),(A,C),(C,A),(B,C),(C,B),(C,C)\) 转移是 \(\begin{bmatrix} 1 & n-2 & 0 & 0 & n-2 & 0 阅读全文
摘要:
这场 abc F、G 质量堪忧。怎么能扔板子上来呢? 板子:P4719 【模板】"动态 DP"&动态树分治 Solution 这种每次修改对后面询问有影响,又每次都要输出答案的,离线就基本做不了了,这时候就往动态算法想,其实做过几道 ddp 的题就看出来这是个板子。 由于题目中的式子性质优良,我们很 阅读全文
摘要:
Updata 7.10 文章重构。 参考了网上许多 blog 什么是期望 我们小学学过概率和平均数。 把事件 \(A\) 发生的概率表示为 \(P(A)\)。 把随机变量 \(X\) 的取值期望值记作 \(E(X)=\sum_iP(X=i)\times i\) 简单点就是成立概率乘上成立贡献。 简单 阅读全文
摘要:
复健 SOSdp(sum over subsets dynamic programming)。 引入 令 \(F(x)=\sum\limits_{u\subseteq x} A(u)\) 其中 \(A\) 为给定数组,求出 \(\forall x, F(x)\) 。 思路一 暴力枚举子集,时间复杂度 阅读全文