
FFT
Lynstery
一只蒟蒻
展开
-
[FFT 模板题] HDU 1402:A*B Problem Plus
题意实现高精乘法。位数<=50000题解FFT 模板题。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;const double PI=acos(-1.0);const int maxn=(1<<18)+5;struct E{ double real,i原创 2017-03-31 20:10:20 · 447 阅读 · 0 评论 -
[FFT] BZOJ3527: [Zjoi2014]力
题意给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qiE_i=F_i/q_i,求EiE_i. n≤100000,0<qi<1000000000n≤100000,0<qi<1000000000题解FFT的简单运用。 Ej=∑i=1j−1qi(i−j)2−∑i=j+1nqi(i−j)2E_j=\sum_{i=1}^{j-1} \frac{q_i}{(i-j)^2}-\sum_{i=j+1原创 2017-07-12 23:53:05 · 371 阅读 · 0 评论 -
[生成函数+容斥+FFT] BZOJ3771: Triple
题意给出n个物品,每个物品有一个价值Ai。可以选一个或两个或三个,求每种可能的总价值的选取方案。 Ai≤40000Ai \le 40000题解题面好有趣…… 考虑构造普通型生成函数A(x),表示取一个的方案。 答案肯定不能直接A3+A2+AA^3+A^2+A,因为一个物品可能被取了多次,考虑如何去重。 取一个就是AA 没错, 取两个是(A2−B)/2(A^2-B)/2,BB是取相同的两个的原创 2017-07-20 13:39:54 · 581 阅读 · 0 评论 -
[压位 || FFT] 【Hillan 的题】简单字符串匹配
不匹配度就是异或后数1的个数。可以压位优化一下,需要对于任意为开始,每 1616 压一起。预处理 2162^{16} 以内的数中1的个数。 这样可以优化到 O(n∗Q/16)O(n*Q/16),是可以过的。对于最后1分的包,好像是考虑 ∑(S1i−S2j)2=∑S12i+∑S22i−2∑S1i∗S2j\sum (S1_i-S2_j)^2=\sum S1_i^2+\sum S2_i^2-2\sum原创 2017-10-11 13:19:53 · 762 阅读 · 0 评论 -
[循环卷积 || 循环矩阵] HHHOJ #120. 随
首先推一下式子,变成求 1nm∑(ak1ak2..akm mod P)=1nm∑kk∑[ak1ak2..akm mod P==k]\frac{1}{n^m}\sum(a_{k_1}a_{k_2}..a_{k_m} \text{ mod } P)=\frac{1}{n^m}\sum_{k} k\sum[a_{k_1}a_{k_2}..a_{k_m} \text{ mod } P==k] 注意模 P原创 2017-11-08 16:03:08 · 1304 阅读 · 0 评论 -
FFT——学习笔记
什么是FFT? 快速傅里叶变换,OI中主要用于多项式乘法。时间复杂度为O(nlogn) 下面是一些前置知识。 单位复根 n次单位复根是满足wnwnw^n=1的复数www。 wn=e2πi/nwn=e2πi/nw_n=e^{2πi/n} 称为主n次单位根,所有的其他n次单位根都是wnwnw_n的幂。对于k=0,1,…,n-1,这些根是e2πik/ne2πik/ne^{2πik...原创 2017-03-31 21:10:38 · 1210 阅读 · 0 评论 -
[分治FFT] HDU5730 Shell Necklace
分治 FFTFFTFFT,就是 CDQCDQCDQ 分治加 FFTFFTFFT。 用来解决这样的问题:已知 g(x)g(x)g(x),且 f(i)=∑i=0n−1f(i)g(n−i)f(i)=∑i=0n−1f(i)g(n−i)f(i)=\sum_{i=0}^{n-1} f(i)g(n-i) 求 f(x)f(x)f(x)。 就是直接 CDQCDQCDQ 分治,算 [L,mid][L,mi...原创 2018-02-09 23:25:52 · 465 阅读 · 0 评论