![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FFT
HT008_123
家人们点点关注叭
展开
-
入门级FFT
写在前面(跟正文没有一点点毛线关系,可以直接略过) 本蒟蒻是个数学很差的人,对于数学上的问题,一般都是敬而远之。 一天,我与群中大佬讨论NOIP2017时,发生了如下对话 我:如果我是出题人,第一题我就搞成高精度的,卡掉一批人 大佬:如果a b数位长度超过10510^5还得搞FFT,真是毒瘤啊 我:为啥啊? 大佬:你傻啊,朴素的高精乘法复杂度可是O(lenA*lenB)的 我:…原创 2018-01-11 19:33:58 · 363 阅读 · 0 评论 -
[HZOI 2015] 释迦
题目描述:多项式乘法,结果对 23333333 取模题目分析:用FFT实现MTT,详见这里 跑的好慢啊…题目链接:COGS 2294Ac 代码:#include <cstring>#include <iostream>#include <algorithm>#include <cstdio>#incl...原创 2018-05-11 09:23:49 · 148 阅读 · 0 评论 -
[BZOJ3771] Triple
题目描述:雾.题目分析:Come from zyf2000 构造多项式. 首先1个的直接统计 将所有的数搞成一个生成函数,做一遍卷积搞出来选2个的答案 但是2个的存在选了两个相同的,或者选了一个排列,直接除2即可 然后生成函数卷两次统计选3个的答案 这里需要容斥一下,(选3个的答案-强行选了2个一样的*3+强行选了3个一样的*2)/6才是不考虑顺序、选不重复的3个的答案...原创 2018-04-19 09:11:21 · 164 阅读 · 0 评论 -
[HDU 4609] 3-idiots
题目描述:有N个线段,求任意组合能够形成三角形的情况概率题目分析:首先定义数组 num[i] 表示长度为i的线段个数 我们想要统计两个线段任意组合出长度为 i 的方案个数 可以先对 对 num 数组做一次FFT 然后减去同时选了自己和正反选择的情况就可以求出方案数了 对线段长度数组排序 我们枚举一个线段 假设它是三个里面最长的 根据三角形的定义,另外的两个线段的和要大于...原创 2018-04-18 16:23:24 · 194 阅读 · 0 评论 -
[SDOI 2015] 序列计数
题目描述:雾.题目分析:首先写出朴素的DP方程 DP[i][j]为选了i个数当前乘积为j的方案数DP[i][j]为选了i个数当前乘积为j的方案数DP[i][j]为选了i个数当前乘积为j的方案数 DP[i+1][(j∗k)%m]=∑kDP[i][j]∗C[k]DP[i+1][(j∗k)%m]=∑kDP[i][j]∗C[k]DP[i+1][(j*k)\%m]=\sum_k DP[i][...原创 2018-04-17 16:38:22 · 167 阅读 · 0 评论 -
[AH2017/HNOI2017] 礼物
题目描述:没有.题目分析:先不考虑C 那么 Ans=min∑ni=1(xi+k−yi)2=∑ni=1(x2i+y2i)−2∗max∑ni=1xi+k∗yiAns=min∑i=1n(xi+k−yi)2=∑i=1n(xi2+yi2)−2∗max∑i=1nxi+k∗yiAns=min\sum_{i=1}^{n}(x_{i+k}-y_{i})^2=\sum_{i=1}^{n}(x_{i}...原创 2018-04-17 10:33:09 · 280 阅读 · 0 评论 -
[Luogu4173/BZOJ4259] 残缺的字符串
题目描述:给出一个模板串和一个母串,问模板串在母串中出现过几次。带通配符。题目分析:设F[i]表示把模板串是否能够与母串的第[i−s+1−i][i−s+1−i][i-s+1-i]形成的串匹配. f[i]/g[i]表示两个串的数值,当为’*’的时候,值为0,否则为与’a’的差值+1 F[i]=∑s−1j=0f(i−j)g(i)∗(f(i−j)−g(i))2F[i]=∑j=0s−1...原创 2018-04-16 16:26:59 · 201 阅读 · 0 评论 -
[模板] MTT实现之FFT拆系数
题目描述:求两个多项式的卷积,系数对P取模,不保证P可以分解成P=a⋅2k+1P=a⋅2k+1P=a⋅2^k+1 题目分析:P不保证分解成那个形式,那么我们就不可以用NTT了. 如何解决这个问题呢? 拆系数+FFT~ 基本上就是找个模数 然后拆成4个多项式,分别是第一个多项式 / 模数 %模数 第二个多项式 / 模数 %模数 的值 然后两两相乘,结果 乘上对应项数的模数次...原创 2018-04-16 11:01:25 · 1013 阅读 · 0 评论 -
[模板] 多项式求逆
题目描述:给定多项式F(x)F(x)F(x) 求一个多项式G(x)G(x)G(x) 满足F(x)∗G(x)≡1(mod xn)F(x)∗G(x)≡1(mod xn)F(x)*G(x)\equiv1(mod \ x^n)题目分析:通过倍增法及NTT求逆 总复杂度为NlogNNlogNNlogN 具体讲解请看Miskcoo的博客题目链接:Luog...原创 2018-04-15 16:28:00 · 232 阅读 · 0 评论 -
[ZJOI2014] 力
题目描述:定义 fi=∑i<jqi∗qj(i−j)2−∑i>jqi∗qj(i−j)2fi=∑i<jqi∗qj(i−j)2−∑i>jqi∗qj(i−j)2f_i=\sum_{ij}\frac{q_i*q_j}{(i-j)^2} Ei=fi/qiEi=fi/qiE_i=f_i/q_i题目分析:生成函数第一题~ Ei=∑i<jqj(i−j)2−∑i>...原创 2018-04-15 15:00:00 · 180 阅读 · 0 评论 -
[模板] NTT快速数论变换
题目分析:emmm,求两个多项式卷积题目分析:FFT能做哇,然而精度和速度… NTT相对于FFT就是变换了原根。 本博客木有讲解,只有板子qwq题目链接:UOJ #34 Luogu 3803Ac 代码:#include <iostream>#include <cstdio>#include <algorithm&g...原创 2018-04-15 09:37:09 · 402 阅读 · 0 评论 -
[COGS 2259] 异化多肽
题目描述:QAQ…题目分析:很明显我们是可以搞一下指数生成函数的… 然而复杂度是O(m∗n2)O(m∗n2)O(m*n^2) 无法优化… 换个方式做生成函数 A(x) 表示 质量为 x 的 氨基酸有几类 B(x)=∑∞i=0A(x)iB(x)=∑i=0∞A(x)iB(x) = \sum_{i=0}^{\infty} A(x)^i 显然答案是B(x)中的n次项系数 上面的...原创 2018-05-04 16:10:36 · 183 阅读 · 0 评论