
FFT-NTT
KsCla
这个作者很懒,什么都没留下…
展开
-
Tyvj4876:骰子游戏 ((FFT/NTT)+倍增+DP)
题目传送门:http://tyvj.cn/p/4879题目分析:其实这题我并没有AC(因为我没写过NTT),只是觉得这还是道不错的DP,就记录一下。骗访问量 读完题之后可以发现第一段话是废话,令x减去小A手中y点数的个数,问题就变成了:有n个人,每个人有m个骰子,所有点数为y的骰子的个数大于等于x的方案有多少种?考虑到一个人手中的骰子为{1,1,2}和{1,2,1}视作同一种方案,不妨先预处理出一原创 2017-09-30 14:51:16 · 625 阅读 · 0 评论 -
BZOJ4503:两个串 (构造+FFT/随机化+NTT)
权限题传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4503题目大意:给你两个串S和T,询问T在S中出现了几次,以及在哪些位置出现。S中只包含小写字母,T中包含小写字母和’?’,’?’可以匹配任何字符。|T|<=|S|<=100000。题目分析:26倍常数必定TLE。我们不妨先假设T中没有’?’,那么如何判断T和...原创 2018-02-17 02:08:52 · 677 阅读 · 3 评论 -
UOJ#86:mx的组合数 (Lucas定理+原根+NTT+高精度)
题目传送门:http://uoj.ac/problem/86题目分析:高精度写死人系列,我写了一个晚上才写完QAQ。一开始拿到这题没什么头绪,然后从部分分开始想。上数学课的时候忽然间发现40分的部分分就是个暴力枚举+Lucas定理。根据:Cnm=C⌊np⌋⌊mp⌋∗CnmodpmmodpCmn=C⌊mp⌋⌊np⌋∗CmmodpnmodpC_{m}^{n}=C_{\lfloor\...原创 2018-03-15 19:00:02 · 596 阅读 · 0 评论 -
BZOJ5093:图的价值 (数论+NTT)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=5093题目分析:这是一道很喵的题,让我学会了第二类stirling数的一种新姿势。还记得我一月初去HN集训的时候老师讲过这题,不过那个时候我对这方面还不太熟悉,今天CSHwang提醒我我才把这坑填了。首先单独考虑每个点对最终答案的贡献。假设某个点的度数为d,那么它向其它n-1个...原创 2018-02-18 02:08:27 · 925 阅读 · 0 评论 -
洛谷P4245:【模板】MTT (拆系数+FFT)
题目传送门:https://www.luogu.org/problemnew/show/P4245题目分析:为什么同一道题的题解我写了两篇blog?当然是因为这是两种不同的方法骗访问量啊。今天终于写了传闻已久的拆系数+FFT。大概就是令sp=⌈p–√⌉sp=⌈p⌉sp=\lceil \sqrt{p}\rceil,然后将两个多项式按除以spspsp和模spspsp的结果分成两个多项式。最...原创 2018-03-14 22:07:39 · 1128 阅读 · 0 评论 -
多项式取模 模板
前言:最近想写一下多项式取模的模板,然而找不到模板题。于是上网找了个高精度除法题,写完之后才发现高精度除法和多项式取模是不一样的QAQ。前者要求不能出现负数,为此某些位置可以暂时为0,将余数拉到后面;而多项式取模则要求最高项一定要剩余0。于是我把程序随便改了改,先扔在这儿,以后备忘。我写的是实数(FFT)的版本(其实我并不知道实数版本的多项式取模到底有什么用)。另外我还不知道有没有写错...原创 2018-02-28 16:37:27 · 1490 阅读 · 0 评论 -
多项式求逆,多项式取模,多项式开方 学习笔记
前言还记得上个学期tututu跟我提过多项式的很多操作,还有一些优化常数的奇技淫巧,然而那个时候我一脸懵逼。最近几天无所事事,去洛谷做比赛又整天被吊着打,闲暇之余就想着学一下多项式的几个基本操作。其实一开始我是想学CZT的,根据myy的论文它能把BZOJ3992那题优化到O(mlog(m)+mlog(n))O(mlog(m)+mlog(n))O(m\log(m)+m\log(n))。然...原创 2018-02-23 21:53:34 · 11598 阅读 · 3 评论 -
洛谷P4238:【模板】多项式求逆
题目传送门:https://www.luogu.org/problemnew/show/P4238题目分析:放个板子在blog上,以后复习的时候用。注意每一次调用Poly_Rev()的时候都要重新计算一遍Rev数组,而且要先清0。求modxmmodxm\mod x^m下的逆元的时候,注意NTT的次数界要开到2m,因为A(x)G2(x)A(x)G2(x)A(x)G^2(x)的次数界加...原创 2018-02-25 01:08:10 · 372 阅读 · 0 评论 -
洛谷P4245:【模板】MTT (CRT+三模数NTT)
题目传送门:https://www.luogu.org/problemnew/show/P4245题目分析:一道任意模数多项式乘法的模板题。可以写拆项+FFT,或者三模数NTT。我暂时只写了后者。具体做法是这样:先选取三个乘积在1023102310^{23}以上的便于使用NTT的模数。在这里我选的是m1=998244353=223∗119+1m1=998244353=223∗119+1...原创 2018-03-13 22:10:19 · 1201 阅读 · 3 评论 -
AGC005F:Many Easy Problems (计数原理+NTT)
题目传送门:https://agc005.contest.atcoder.jp/tasks/agc005_f?lang=envjudge题面传送门:https://vjudge.net/problem/AtCoder-2064题目大意:给出一棵n个节点的树。令S为树上某些节点的集合,f(S)为包含这个集合的最小连通块的大小。对于每一个1<=k<=n,你要输出在n个点中任意选...原创 2018-02-16 11:30:26 · 492 阅读 · 0 评论 -
Codeforces 553E:Kyoya and Train (最短路+概率DP+分治+FFT)
题目传送门:http://codeforces.com/contest/553/problem/E题目大意:给出一幅n个点m条边的有向图,并给出参数T,你要从1号点走到n号点。经过每一条边都要花费时间和金钱,第i条边需要花费cost[i]的金钱,并且经过该边花费时间为t的概率是p[i][t](1<=t<=T)p[i][t](1<=t<=T)p[i][t](1f[u]...原创 2018-02-16 01:43:34 · 658 阅读 · 0 评论 -
BZOJ4827:[Hnoi2017]礼物 (FFT)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4827前言:还记得第一次看见这题是今年4月24号,省赛前集训的时候。那个时候我连卷积都没听说过,听到正解是FFT一脸懵逼。直到上个周末,我%了一波menci大神的blog和算导,正式入了FFT的坑,才发现这是道FFT裸题QAQ。于是在刷完hdu4609,知道了三角形的三条不等式顶多只有一条不原创 2017-12-12 15:43:42 · 400 阅读 · 0 评论 -
UVALive4671:K-neighbor substrings (FFT+Hash)
题目传送门:https://cn.vjudge.net/problem/UVALive-4671题目大意:给出两个长度不超过10510^5,仅由小写字母a,b组成的串A和B。设C为A中所有和B等长的子串的集合(注意,这个集合不能有相同的元素),问C中有多少个元素和B的汉明距离小于等于给定的值k。多组数据,以k=-1结束。字符串X,Y的汉明距离就是使得X[i]≠Y[i]X[i]\neq{Y[i]}的i原创 2017-12-12 21:25:04 · 454 阅读 · 0 评论 -
BZOJ3160:万径人踪灭 (FFT+Manacher)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3160题目分析:感觉这题就是在UVALive4671那题的基础上强加了个Manacher……两个位置对称,就意味着它们下标的和相等。于是我们先将字符串中所有a变为1,其余位置变为0,做一次自乘。如果有两个位置都是a,并且它们沿第X位对称,那么它们就会对得式的第2X位有贡献;如果它们沿第X,X原创 2017-12-13 15:54:32 · 443 阅读 · 0 评论 -
Tyvj1953:Normal (点分治+FFT)
题目传送门:http://tyvj.joyoi.cn/p/1953题目分析:好神的一道题,%了一波dalao的题解才会做,然后我发现我对期望一无所知QAQ……这题的难点其实既不在于点分,也不在于FFT,而是对期望的转化。首先由于期望的线性性,我们可以单独计算每一个点x对期望时间的贡献。而点x每被计算一次,就意味着存在一个分治中心y(x可以等于y),使得x到y路径上的其它点都还没有被作为分治中心。由于原创 2017-12-14 12:57:03 · 605 阅读 · 0 评论 -
UVA12633:Super Rooks on Chessboard (FFT)
题目传送门:https://cn.vjudge.net/problem/UVA-12633题目大意:现在有一个r*c的白色棋盘,上面有n个棋子。每个棋子会将它所在行和所在列,以及所在主对角线染黑(主对角线就是左上到右下)。问最终有多少个白色格子。不超过20组数据,r,c,n<=50000。题目分析:做了几道CF的题愉悦身心之后,我又开始刷回FFT的题了(虽然这题是水题)。如果每个棋子只染所在行和列,原创 2017-12-17 21:48:55 · 588 阅读 · 2 评论 -
BZOJ3456:城市规划 (多项式求逆/分治+NTT)
权限题传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3456题目大意:给定n,求n个点的简单无向连通图的数量(每个点标号不同,图无重边,无自环)。n<=1.3∗105n<=1.3∗105n2C2n2Cn22^{C_{n}^{2}}种,记为g[n]。然后根据容斥原理,我们枚举1号点所在的连通块大小k(0<k<n...原创 2018-02-26 14:55:20 · 373 阅读 · 0 评论 -
洛谷P4233:射命丸文的笔记 (计数原理+容斥原理+多项式求逆/分治NTT)
题目传送门:https://www.luogu.org/problemnew/show/P4233题目分析:这道题是我打比赛的时候见到的,然而当时并没有想出来,连部分分都懒得写QAQ。后来我分析了一下为什么我总是不能够自己想出NTT的题目,发现其实是自己的计数,容斥,DP学得太差,省赛前还是要找个时间补一补。别人已经写了很详细的题解了,我也就不啰嗦了:官方题解传送门我补充一句:这题...原创 2018-02-27 20:45:40 · 650 阅读 · 0 评论 -
BZOJ3992:[SDOI2015]序列统计 (NTT+倍增+DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3992题目分析:“如果一道题的模数是998开头的那个费马素数,那它多半不是NTT。如果模数是1004开头的,那它基本上就是NTT了。”——tututu我们可以将长度为n的这个序列分成两段,分别算出前半段和后半段乘积模m等于0~m-1的方案数,记进f和g数组。然后令f[i]∗g[...原创 2018-02-12 22:41:08 · 483 阅读 · 0 评论 -
多项式乘法优化 学习笔记
今早重新看了myy的论文,又掌握了一些多项式乘法的新姿势,于是写一篇blog巩固一下QAQ。①如何用一次DFT加一次IDFT求出两个实序列A和B的卷积?这里我们只要求卷积后的结果,不需要求DFT的值,所以有一种很简便的方法:令复数序列C的实部为A,虚部为B。将其自卷,所得结果虚部的值除以2就是要求的多项式。这个十分容易证明:C2[k]=∑j=0kC[j]C[k−j]C2[k]=...原创 2018-03-14 11:15:17 · 1469 阅读 · 1 评论