
快速变换
文章平均质量分 89
huanghongxun
这个作者很懒,什么都没留下…
展开
-
HDU 1402 POJ 2389 BZOJ 2179 大整数乘法 FFT
FFT果然还是看算导来得快。。 网上的讲解糊里糊涂的 不过我还是看了2小时QAQ递归形式function recursive-fft(a) { n = a.length // 必为2的幂 if (n == 1) return a wn = Math.pow(Math.e, 2 * Math.PI * Math.i / n) // wn还可以利用复数原创 2016-03-20 17:37:00 · 996 阅读 · 0 评论 -
BZOJ 3527 ZJOI 2014 力 FFT
数轴上有n个点电荷,求各电荷所在位置的电场强度。规定向左为正方向。(强行写题意)电场力表达式 Fj=∑i<jqiqj(i−j)2−∑i>jqiqj(i−j)2 F_j=\sum_{i<j} \frac{q_iq_j}{(i-j)^2}- \sum_{i>j} \frac{q_iq_j}{(i-j)^2} 电场强度表达式 Ej=Fjqi E_j=\frac{F_j}{q_i} 合并可得 E原创 2016-03-20 23:33:01 · 735 阅读 · 0 评论 -
BZOJ 2194 快速傅里叶之二
b数组倒过来就是卷积了。#include <cstdio>#include <complex>#include <cmath>#define rep(i,j,k) for(i=j;i<k;++i)using namespace std;typedef complex<double> cd;const double PI = acos(-1.);const int N = 500010;原创 2016-03-23 17:56:12 · 530 阅读 · 0 评论 -
BZOJ 3992 SDOI 2015 序列统计 NTT 生成函数 计数 原根
给定元素在[0,m)内的整数集合S,求有多少个长度为n的数列满足所有元素属于S且mod m下的积为x。由于m是质数,所以元素的积利用原根可转化为和。 即∏ei∈seqei≡xmodm\prod_{e_i\in seq} e_i \equiv x\mod m 由于原根的幂可以一一表示[0,m)内的数,所以 令hi,hx满足ghimodm=ei,ghxmodm=xh_i,h_x满足g^{h_i}原创 2016-03-27 22:17:40 · 991 阅读 · 0 评论 -
CodeForces 438E The Child And Binary Tree NTT模板 生成函数应用
求有多少个二叉树使每个点权值均在给定集合C中而且权值和为令fsf_s表示总权值为s的合格二叉树个数。 于是有 f0=1fs=∑w∈C∑ifi×fs−w−i\begin{align}&f_0=1\\&f_s=\sum_{w\in C}\sum_i f_i\times f_{s-w-i}\end{align} 发现右边和卷积有点像。 于是令 gk=∑ifi×fk−i g_k=\sum_i原创 2016-03-22 14:20:04 · 1203 阅读 · 0 评论 -
BZOJ 3456 城市规划 NTT 生成函数计数 ***
求n个点的有标号简单连通图个数。令 f(n)f(n)表示有n个点的有标号简单连通图个数 g(n)g(n)表示有n个点的有标号简单图个数。所有可能的边一共有en=C2n=n(n−1)2e_n=C_n^2=\frac{n(n-1)}{2}种情况,即从n个点中选2个点连边。 所以简单无向图的个数,就是选边的种类数,即g(n)=C0en+C1en+⋯+Cenen=2eng(n)=C_{e_n}^0+C原创 2016-03-28 22:36:41 · 932 阅读 · 0 评论