Azune FFT 解析

我真的服了 FFT 了,你怎么了?

我说,DFT 是求单位根处点值,也就是给你一个多项式 \(f\) 满足 \(\deg f=n\) 其中 \(n\) 是 2 的次幂,要求所有 \(f(\omega_n^k)\) .

Radix-2 FFT 打算分奇偶项讨论:

\[f(z)=f_{\sf odd}(z^2)+z\cdot f_{\sf even}(z^2) \]

那我直接暴力代入:

\[\begin{aligned}f(\omega_n^k)&=f_{\sf odd}(\omega_n^{2k})+\omega_n^k\cdot f_{\sf even}(\omega_n^{2k})\\&=f_{\sf odd}(\omega_{n/2}^k)+\omega_n^k\cdot f_{\sf even}(\omega_{n/2}^k)\\f(\omega_n^{k+n/2})&=f_{\sf odd}(\omega_{n}^{2k+n})+\omega_n^{k+n/2}\cdot f_{\sf even}(\omega_n^{2k+n})\\&=f_{\sf odd}(\omega_{n}^{2k})-\omega_n^k\cdot f_{\sf even}(\omega_n^{2k})\\&=f_{\sf odd}(\omega_{n/2}^k)-\omega_n^k\cdot f_{\sf even}(\omega_{n/2}^k)\end{aligned} \]

单位根有这么好的性质?是历史的偶然也是必然!

这样就可以分治了!恭喜达到 \(\Theta(n\log n)\) .

还是看一下远方的 Bostan-Mori 吧,给 \(f,g\),要求 \([z^k]\frac{f(z)}{g(z)}\) . 这么突然?

\[[z^k]\dfrac{f(z)}{g(z)}=[z^k]\dfrac{f(z)g(-z)}{g(z)g(-z)}=[z^k]\dfrac{F(z^2)+z\cdot G(z^2)}{H(z^2)} \]

提取后面的东西考虑分 \(k\) 的奇偶性考虑跟 \(F\) 还是 \(G\) 就行了 . 恭喜达到 \(\Theta(\mathsf M(n)\log k)\) .

我想一下能不能整个啥 Radix-4 Bostan-Mori,不过好像自然推广就可以了!

在我还是个宝宝的时候,妈妈给了我一本 FFT 入门笔记,不过当时我并没有看懂 .

有些东西有天然的分治结构,比如二进制 . 我们先放一张 0-1 Trie 的图片:

如果把叶子节点排成一排,\(0,1,\cdots,2^k-1\) 分别表示 \(z^0,z^1,\cdots,z^{2^k-1}\) 项的系数?

相当于如果有些东西你能把奇偶项合并,那么从低到高建 0-1 Trie;如果你能一分为二的合并(就像线段树的结构一样),那么从高到低建 0-1 Trie .

比如你发现一张诺兹多姆是 15s,相当于你的回合是经历了 \(0\text{ s}\dots (2^4-1)\text{ s}\),这是天然的分治结构 .

比如你发现一个二维平面总共 4 个象限,你随便选一个看起来也像二维平面,如果你在外面 bound 一下分治就可以进行了 . 你说得对这是四分树 .

唉不拿这个举例不行:

我是 A 题

今天晚上吃饭回来,看到 yspm 从斜坡上走了下来,转了一圈又走了回去。

紧接着 SoyTony 也模仿 yspm 做了这件事。这是处于模仿有趣的行为,还是将自身带入其中感受转圈的乐趣,我说不上来。

一直在思考一件事情,就是人是不是应该保持「初心」,而这个「初心」究竟指什么。

水群的时候,群友说我变了。但是,人总是在变的,而哪些需要改变,哪些需要保持,是一个值得探讨的问题。

保持「初心」,必然不是保持一成不变,而是保持自己内心的一种目标,在改变之中而不变,才是「初心」吧。

正如现在一样,OI 只是人生中的一部分,而编程的初心,是不会变的。也只有这种初心,才能支持所有人走下去。

不过,即使发生改变,再回过头去看之前的时光,也总是会有一种感慨,有一种回味在里面的。

可能,改变是必然的,而回忆也是必然的,每到一个转折点,回忆正是一种对改变的新认识。

这,又何尝不是在斜坡上转一圈呢?

我以前是在环理论那篇写的这个,span 其实就是天然的分治结构(有人喜欢叫它倍增).

不过你也可以直接做,因为 yspm 是 2 的次幂,SoyTony 是 2 的次幂减一 .

我是 B 题

给定一个二叉树,每个点有点权,问有多少条路径的权值和等于 \(w\) .

最多 1000 个点 .

诶?\(O(n^2)\)?但是 \(n\) 是什么来着……

Let Solution not be bold.

我是 C 题

单点修改,区间最小值 .

这里有一行 . Ghost Trick 也是 2 屏的,算分治嘛?

只会 \(O(n\log^2n)\) .

唉,线段树,我不能要你啊!

其实线段树只要是双半群就没问题 . 但是分治呢?

我们对此进行的尝试全都失败了。

出于种种原因,我并不愿意在此处展开举例说明。

分治在 OI 中的应用还十分有限,其题目几乎都可以用数据结构 / 算法解决。

据我所知,███和██都曾经试过██来引█分治(虽然██其实只是给█████████),但都被更初等的做法解决了。

所以,希望看到这里的你,能够延续他们的步伐。

\(\!\)

上文中部分内容可能为虚假陈述,虚假陈述可能有两句及以上,也可能没有虚假陈述。

\[\textsf{For without discipline and without discipline there is no law, but without natural use.} \]


后记:

因为有些 neta 可能过于抽象,下面放出本文的一些线索,如果不想看的可以不看 .

folder

ref:

具体的内容就不透露了(哇哦竟然是一句双关).

posted @ 2023-10-01 16:14  Jijidawang  阅读(426)  评论(4编辑  收藏  举报
😅​