DFT
文章平均质量分 56
Vectorxj
这个作者很懒,什么都没留下…
展开
-
BZOJ 2179 [FFT]
给出两个nn位1010进制整数xx和yy,你需要计算x∗yx*y。 n≤60000n ≤ 60000FFTFFT模板题 自己写了一个十分简陋功能不全的complexcomplex#include <cstdio>#include <cstdlib>#include <iostream>#include <complex>using namespace std;//typedef com原创 2016-12-20 20:54:06 · 408 阅读 · 0 评论 -
[Bluestein's Algorithm][DFT] CodeChef REALSET
SolutionSolutionSolution由F(b)≠0,F(a∗b)=0F(b)≠0,F(a∗b)=0\mathcal{F}(\textbf{b}) \neq \textbf{0},\mathcal{F}(\textbf{a}*\textbf{b})=0可以得到F(a)F(a)\mathcal{F}(\textbf{a})至少有一项为000。 考虑aa\textbf{a}向量的DFT...原创 2018-03-01 21:42:56 · 601 阅读 · 0 评论 -
[DFT][Matrix-Tree定理][高斯消元] LOJ #6271. 生成树求和 加强版
SolutionSolutionSolution可以把每位分开来做。 这样每一位都是一个长度为3的循环卷积。 DFTDFT\text{DFT}后就是独立相乘了,可以矩阵树定理。 考虑三次单位根ω3,1+ω3+ω23=0ω3,1+ω3+ω32=0\omega_3,1+\omega_3+\omega_3^2=0。 如何证明a=b=0a=b=0a=b=0是a+bω=0a+bω=0a+b\om...原创 2018-03-02 14:38:01 · 728 阅读 · 0 评论 -
[FNT][DP][矩阵] Codeforces 947 E - Perpetual Subtraction
SolutionSolutionSolution暴力DP很简单fi,j=∑k≥jfi−1,kkfi,j=∑k≥jfi−1,kkf_{i,j}=\sum_{k\ge j}{f_{i-1,k}\over k} 因为转移形式都一样,可以写出转移矩阵。A=⎡⎣⎢⎢⎢⎢⎢⎢1n+10⋮01n+11n⋮0⋯⋯⋱⋯1n+11n⋮1⎤⎦⎥⎥⎥⎥⎥⎥A=[1n+11n+1⋯1n+101n⋯1n⋮⋮⋱⋮00⋯1...原创 2018-03-12 07:34:31 · 1074 阅读 · 1 评论 -
[NTT][DP][树链剖分][分治] LOJ #6289. 花朵
SolutionSolutionSolutionfu,0/1,ifu,0/1,if_{u,0/1,i}表示uuu子树中选了iii个点,uuu选不选的答案。 转移显然就是一个卷积的形式。 考虑重链剖分。 先把轻儿子卷到根,这样只需要考虑重链。 再考虑重链上的DP。 考虑头尾选不选gu,0/1,0/1gu,0/1,0/1g_{u,0/1,0/1}。这也是个卷积,可以分治+FFT。#i...原创 2018-03-05 16:48:57 · 841 阅读 · 0 评论 -
[交互][FWT] UOJ #328. 【UTR #3】量子破碎
SolutionSolutionSolution矩阵 A=[111−1]A=[111−1]A=\left[\begin{matrix} 1 & 1 \\ 1 & -1 \\\end{matrix}\right] 好像就是 FWTFWT\text{FWT} 的变换矩阵。 对每一位都变换以后,考虑FWT的式子。 fS^=∑T⊆U(−1)|S∩T|fTfS^=∑T...原创 2018-03-13 08:12:47 · 462 阅读 · 0 评论 -
[多项式ln][多项式exp][多项式求幂][生成函数][DP][FNT] BZOJ 3684: 大朋友和多叉树
SolutionSolutionSolution把DP写成生成函数的形式。f(x)=x+∑d∈Dfd(x)f(x)=x+∑d∈Dfd(x)f(x)=x+\sum_{d\in D}f^d(x)设g(f(x))=xg(f(x))=xg\big(f(x)\big)=x,有g(f(x))g(x)==f(x)−∑d∈Dfd(x)x−∑d∈Dxdg(f(x))=f(x)−∑d∈Dfd(x)g(x)=x−∑...原创 2018-03-06 13:00:59 · 782 阅读 · 0 评论 -
[多项式ln][多项式exp][背包DP][生成函数] LOJ #556. 咱们去烧菜吧
SolutionSolutionSolution就是个背包DP咯。 答案长这个样子ans=[xn]∏i=1m1−xaibi+ai1−xaians=[xn]∏i=1m1−xaibi+ai1−xaians=[x^n]\prod_{i=1}^m{1 - x^{a_ib_i+a_i}\over 1-x^{a_i}}考虑取个lnln\lnlnans=∑i=1m(ln(1−xaibi+ai)−ln(1−...原创 2018-03-06 14:45:00 · 854 阅读 · 0 评论 -
[FFT][离散对数][原根] LOJ #6156. A * B Problem
SolutionSolutionSolution刚开始看错题了。。。其实就是一个FFT裸题 如果p∤a,p∤bp∤a,p∤bp\nmid a,p\nmid bab≡k(modp)ab≡k(modp)ab\equiv k\pmod p是与logGa+logGb≡logGk(modφ(p))logGa+logGb≡logGk(modφ(p))\log_Ga+\log_Gb\equiv \l...原创 2018-01-18 10:49:23 · 662 阅读 · 0 评论 -
[FWT][DP] UOJ #310. 【UNR #2】黎明前的巧克力
SolutionSolutionDP很好想。 设ii个巧克力的集合幂级数fif_i,其中fi,0=1,fi,ai=2f_{i,0}=1,f_{i,a_i}=2。 答案就是这一堆东西对称差卷积起来。 暴力的做法就是把每个都FWT一下再乘起来。 集合幂级数ff的沃尔什变换fS^=∑T⊆U(−1)|S∩T|fT\hat{f_S}=\sum_{T\subseteq U}(-1)^{|S\cap原创 2018-01-17 10:12:46 · 428 阅读 · 0 评论 -
[状压DP][NTT] 2016 TCO Algorithm Algo Final - Division I, Level Three HamiltonianPaths
SolutionSolution好神的题~ 转化成某些边不能走。 考虑容斥,把题目转化为模板图中某些边必须要走。 记fef_e表示走了ee条不合法的路径的方案数。 那么可以得到模板图缩了这些路径以后剩下xx个点的方案数gxg_x nn个图放在一起就是卷积的形式。 用FFTFFT快速幂可以得到所有点放在一起剩xx个的点的方案数hxh_x。 然后容斥就可以通过hxh_x得到00对同类点在一原创 2017-12-28 14:26:27 · 378 阅读 · 0 评论 -
[FWT] Codeforces 663E. Binary Table
DescriptionDescription给定一个n×mn\times m的网格,每个位置是00或11。每次可以选择一行或者一列使其中的数全部取反。 要求最小化11的个数。SolutionSolutionZJOI Day1 wjz大佬讲过的题啊。 打vp碰到了。 那时候一直不懂FWT,不明白对称差卷积啊。。 可以看出是要状压的。 首先要枚举翻转哪些行。就相当于枚举一个集合SS,使所有数异原创 2017-10-17 10:38:59 · 452 阅读 · 0 评论 -
[倍增NTT][DP] LOJ#6059. 「2017 山东一轮集训 Day1」Sum
DescriptionDescription求有多少nn位十进制数是pp的倍数且每位之和小于等于mi(mi=0,1,2,…,m−1,m)m_i (m_i = 0, 1, 2, \ldots, m - 1, m),允许前导00,答案对998244353998244353取模。SolutionSolution考虑DP。 设dpi,j,kdp_{i,j,k}为考虑前ii位,膜pp为jj,数位和为kk的方原创 2017-10-12 11:40:02 · 997 阅读 · 0 评论 -
[FMT][DP] BZOJ 4036: [HAOI2015]按位或
DescriptionDescription刚开始有一个集合为空集,全集为UU。 每次以PTP_T的概率给一个集合TT,使拥有的那个集合变成他与这个集合的并。 问变成全集UU的期望步数。SolutionSolution设fSf_S为PSP_S的集合幂级数。他的莫比乌斯变换f^S=∑T⊆SfT\hat{f}_S=\sum_{T\subseteq S}f_T同时有莫比乌斯反演fS=∑T⊆S(−1)|原创 2017-10-16 21:28:30 · 390 阅读 · 0 评论 -
[NTT][斯特林数]BZOJ 5093: 图的价值
DescriptionDescriptionDescription一个带标号的图的价值定义为每个点度数的ppp次方的和。 给定nnn和ppp,请计算所有nnn个点的带标号的简单无向图的价值之和。SolutionSolutionSolution推式子: ansxpansS(p,k)=======n2(n−12)∑d=0n−1dp(n−1d)∑k=0pS(p,k)xk↓∑k=0pS...原创 2017-12-10 18:44:43 · 413 阅读 · 0 评论 -
[FWT][BlueStein Algorithm]CodeChef XORTREEH
SolutionSolution裸的多维FFT,用BlueSteinBlueStein算法。。把里面的复数域的变换,改成膜意义下的变换就好了。 因为这道题维数真的不高。。而且FNT复杂度比较大,所以直接暴力卷积了。。 所以就要打一个FWT一样的东西。 改了Hillan的模板~#include <bits/stdc++.h>using namespace std;const int MAXN原创 2017-12-21 14:27:14 · 413 阅读 · 0 评论 -
BZOJ 4259 [FFT]
DescriptionDescription很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n。可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺。你想对这两个串重新进行匹配,其中A为模板串,那么现在问题来了,请回答,对于B的每一个位置i,从这个位置开始连续m个字符形成的子串是否可能与A串完全匹配?SolutionS原创 2017-04-17 18:57:27 · 715 阅读 · 0 评论 -
[链分治][FWT][树链剖分] BZOJ 4911: [Sdoi2017]切树游戏
SolutionSolutionDP是一个异或卷积的形式,可以FWT把O(128)O(128)的复杂度降下来。 链分治参考immortalCO的博客。 最后还是有些地方00的逆元的问题搞错了。。#include <bits/stdc++.h>using namespace std;const int N = 60303;const int M = 130;const int MOD = 1原创 2017-12-15 18:47:55 · 488 阅读 · 0 评论 -
[生成函数][NTT][多项式求逆]BZOJ 3456: 城市规划
DescriptionDescriptionDescription求nnn个有标号点的联通图的方案数。SolutionSolutionSolution设fnfnf_n为nnn个有标号点的联通图的方案数。 考虑容斥。nnn个有标号点的一般图的方案数为2(n2)2(n2)2^{{n\choose 2}}。 考虑图中的一个点所在联通块大小,设其为iii。那么就有(n−1i−1)(n−...原创 2017-10-13 14:24:33 · 784 阅读 · 0 评论 -
[多项式ln][多项式exp][生成函数] LOJ #6268. 分拆数
SolutionSolutionSolution设分拆数的生成函数F(x)=∑k≥0fkxkF(x)=∑k≥0fkxkF(x)=\sum_{k\ge0}f_kx^k几个显然的等式就是F(x)lnF(x)===∏k=1∞11−xk∑k=1∞ln11−xk∑k=1∞∑i≥1xkiiF(x)=∏k=1∞11−xklnF(x)=∑k=1∞ln11−xk=∑k=1∞∑i≥1xkii\begin{eq...原创 2018-03-13 20:54:26 · 795 阅读 · 0 评论