![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FFT&FWT
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[NTT 原根 指标 多项式快速幂] BZOJ 3992 [SDOI2015]序列统计
注意到,M 是质数 乘法取个log变加法 也就是取指标于是对于1 ~M−1 中的每一个数都可以表示成原根的某次幂。于是乘法可以转化为原根的幂的加法,转移的时候就相当于做多项式乘法了然后快速幂又是道数论好题#include#include#include#includeusing namespace std;typedef long long ll;原创 2016-05-29 21:29:31 · 1108 阅读 · 0 评论 -
[FFT || 递推] BZOJ 4451 [Cerc2015]Frightful Formula
f1,if_{1,i} 的贡献是 f1,i∗an−i∗bn−1∗Cn−i2n−i−2f_{1,i}*a^{n-i}*b^{n-1}*C_{2n-i-2}^{n-i} fi,1f_{i,1} 同理 注意 f1,1f_{1,1} 没什么卵用 然后 cc 还有贡献 c∑i=2n∑j=2nan−i∗bn−j∗Cn−i2n−i−j=c∑i=0n−2∑j=0n−2ai∗bj∗Cii+jc\sum_{i=2}原创 2017-04-13 17:07:16 · 859 阅读 · 0 评论 -
[FFT] BZOJ 4827 [Hnoi2017]礼物
直接把∑ai+y−bi+x\sum a_i+y-b_{i+x}展开 只有∑ai∗bi+x\sum a_i*b_{i+x}比较难求 直接FFT就好了#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;inline char nc(){ static cha原创 2017-04-20 06:48:00 · 771 阅读 · 0 评论 -
[树形DP FWT] HDU 5909 Tree Cutting
给一个带点权的树 文有多少个连通子图的异或和为0~m-1 没什么好说吧 水题#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; re原创 2017-04-21 08:46:34 · 614 阅读 · 0 评论 -
[FMT 莫比乌斯变换 子集和变换] BZOJ 4036 [HAOI2015]按位或
vfk的论文题 看过组合数学 这个习称子集和变换的东西好像叫莫比乌斯变换? 那么这种变换就叫快速莫比乌斯变换 FMT? 大雾 开始推柿子 令UU表示全集 2n−12^n-1 fi,Sf_{i,S} 表示 ii 秒当前集合为 SS 的概率 gi,Sg_{i,S}为其莫比乌斯变换 gi,S=∑x⊆Sfi,xg_{i,S}=\sum_{x\subseteq S} f_{i,x} 这样 gi原创 2017-04-22 20:44:38 · 2951 阅读 · 0 评论 -
[FWT] 51Nod 算法马拉松26 A A国的贸易
相当于每次每个点会变成自己和与自己相差一个二进制位的数的和 直接FWT 快速幂#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; r原创 2017-07-05 18:59:24 · 516 阅读 · 0 评论 -
[链分治 重链剖分 FWT] BZOJ 4911 [Sdoi2017]切树游戏
我链分治是从immortalCO今年论文学来的 就是一个序列上能够维护的东西,把他搬到重链上,先处理好儿子重链的答案,然后把对这条重链上的影响累加在这条重链上然后就是套路 FWT一下就能加和乘了 注意0没有逆元复杂度O(mnlog2n)O(mn\log^2n) 实际上树链剖分是跑不满的 rank1 开心 O(∩_∩)O~~#include<cstdio>#include<cstdlib>#原创 2017-06-09 14:44:47 · 2048 阅读 · 0 评论 -
[FWT] UOJ #310. 【UNR #2】黎明前的巧克力
这是若干个 2xai+12x^{a_i}+1 的东西的卷积 然后这个FWT一下发现每一项只有 −1-1 或 33 那么卷积的FWT每一项就是若干个 −1-1 和 33 的乘积 这个不好求 直接加在一起FWT,那么我们得到了每一项 −1-1 和 33 的和 因为只有这两个取值,可以直接解方程有多少个 −1-1 和 33 然后快速幂再乘起来#include<cstdio>#include<原创 2017-07-24 09:59:50 · 899 阅读 · 0 评论 -
[FWT] BZOJ 4589 Hard Nim
FWT相关 Fast Walsh-Hadamard Transform (快速沃尔什变换)#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;const int P=1e9+7;const int Inv=(P+1)>>1;inline ll Pow(ll原创 2017-04-09 20:42:02 · 917 阅读 · 0 评论 -
[快速幂 NTT + 最短路] ICPC 2016 China Final I. Cherry Pick
你有mm种面值的硬币,分别为c1,…,cmc_1,…,c_m,每种有无限张。 你去摘nn个樱桃,每个樱桃都有pp的概率摘下来。 你要要用你的硬币把你摘了的樱桃给买下来,每个樱桃需要11元钱,但是不能找钱。 问最好的情况下你期望要多花多少钱。 答案对10^9+7取模。 n<=1e9,m<=100,ci<=1e4n<=1e9, m<=100, ci<=1e4, 且若i≠ji≠j,有ci∗cj<原创 2017-03-29 08:18:51 · 708 阅读 · 0 评论 -
[任意模数NTT 三模数NTT] COGS 2294 [HZOI 2015] 释迦
膜拜大佬可能不敢食用myy的论文啊 只会无脑三模数NTT 拆系数FFT什么的好大啊 于是我们找三个费马质数 使得他们的乘积超过 nP2nP^2 然后就可以用CRT合并了 但是正常的合并需要写高精 实际上我们可以tricky点#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>using names原创 2017-03-29 08:13:41 · 2794 阅读 · 0 评论 -
[第二类斯特林数 组合 分治FFT||多项式求逆] BZOJ 4555 [Tjoi2016&Heoi2016]求和
自己好弱 多项式求逆不会啊分治FFT也是第一次打#include#include#includeusing namespace std;typedef long long ll;inline ll Pow(ll a,ll b,ll p){ ll ret=1; for (;b;(a*=a)%=p,b>>=1) if (b&1)原创 2016-08-22 21:28:49 · 1521 阅读 · 0 评论 -
[FFT 压位] Hillan模拟赛 A.简单字符串匹配
前几个点么 标算给的分块FFT n^1.5 logn 我怎么打都不过压压位开氧气卡过去最后一个点么 把A串转过来 FFT#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=bu原创 2016-10-23 10:23:00 · 948 阅读 · 0 评论 -
[FFT] 51Nod 1028 大数乘法 V2
FFT版子题#include#include#include#include#include#include#define PI acos(-1.0)using namespace std;typedef complex E;const int N=500005;int n,m,L;char s[N];E a[N],b[N];int c[N],R[N];原创 2016-11-17 07:32:12 · 543 阅读 · 0 评论 -
[n点无向图个数 分治FFT || 多项式求逆] BZOJ 3456 城市规划
然后就分治FFT了#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin)原创 2016-09-14 19:28:17 · 819 阅读 · 0 评论 -
[生成函数 FFT] BZOJ 3771 Triple
一个生成函数,用FFT做乘法重复的部分我们考虑用容斥原理来解决。为了方便描述我们不妨设三个多项式。第一个是仅取一个而构成的多项式。->x第二个是仅取相同的两个而构成的多项式。->y第三个是仅取相同的三个而构成的多项式。->z对于本题有三种情况。第一种是取一个,显然直接将x加到答案就好。第二种是取两个,则需要一小步容斥,即(x*x-y)/2第三种是取三个,则需原创 2016-04-07 18:50:03 · 632 阅读 · 0 评论 -
[生成函数 FFT 分块] BZOJ 3509 [CodeChef] COUNTARI
学着大神优化了FFT常数:http://blog.csdn.net/geotcbrl/article/details/50636401可以看出来这是个生成函数暴力的话是N次FFT 然后考虑分块 B次FFT + 块内统计#include#include#include#include#include#define cl(x) memset(x,0,sizeo原创 2016-04-21 13:55:29 · 779 阅读 · 0 评论 -
[FFT 模板题] UOJ #34 多项式乘法
主要就是想看看自己能写的多快 结果并不快#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>using namespace std;typedef double ld;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p原创 2017-02-24 01:48:46 · 413 阅读 · 0 评论 -
[离散对数 FFT FastIO] ICPC 2016 Shenyang K & HDU 5958 New Signal Decomposition
特判0 然后将所有下标取对数 那么就是 bk′=∑ah′∗ch′+k′b_{k'}=\sum a_{h'}*c_{h'+k'} 使用FFT解决本来好好的一道题 卡常数+卡空间+卡精度?!#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>using namespace std;typedef doubl原创 2017-03-29 07:52:48 · 864 阅读 · 2 评论 -
[数学 FFT] Codechef July Challenge 2017 #APRPS Irrational Root
跟 51Nod 1356 代数数的次数 是一样的 不过这里都是质数 也就是就是 2n2^n 关键是输方案 这个不一定有二次剩余感谢sxt 一个一个数加进答案 转化成 已知F(x)F(x),求F(x+a√)F(x+\sqrt a)和F(x−a√)F(x-\sqrt a)的系数 这个推一下就是一个FFT拷了myy的板子 自己的太慢了QAQ#include<cstdio>#include<cs原创 2017-07-24 10:18:34 · 694 阅读 · 0 评论