
ntt
文章平均质量分 81
SC.ldxcaicai
我很菜=_=
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2018.11.14 uoj#34. 多项式乘法(ntt)
传送门 今天学习nttnttntt。 其实递归方法和fftfftfft是完全相同的。 只不过fftfftfft的单位根用的是复数中的东西,而nttnttntt用的是数论里面有相同性质的原根。 代码: #include<bits/stdc++.h> using namespace std; inline int read(){ int ans=0; char ch=getchar()...原创 2018-11-16 20:38:51 · 296 阅读 · 0 评论 -
洛谷P5050 【模板】多项式多点求值(分治ntt)
传送门 解析 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|1; inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&&(ob=(ib=b...原创 2019-07-02 16:25:43 · 336 阅读 · 0 评论 -
洛谷P5158 【模板】多项式快速插值(分治ntt)
传送门 解析 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|1; inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&&(ob=(ib=b...原创 2019-07-02 16:27:28 · 267 阅读 · 0 评论 -
bzoj5093: [Lydsy1711月赛]图的价值(第二类斯特林数)
跟这题貌似是一样的啊 传送门 题意: 对于一张无向图,它的权值是所有点的权值和,一个点权值是它度数的 m 次方,问所有 n 个点简单无向图的权值和。 n≤1e9,m≤2e5n ≤ 1e9, m ≤ 2e5n≤1e9,m≤2e5。 思路: 显然每个点在所有图中的贡献是一样的。 于是我们钦定一个点iii并计算它在所有图中的贡献fif_ifi,这个贡献可以通过枚举它的度来计算: fx=2Cn−12∑i...原创 2019-07-28 23:19:39 · 153 阅读 · 0 评论 -
洛谷P5394 【模板】下降幂多项式乘法(生成函数)
传送门 考虑求出如下两个多项式的乘积: A(x)=∑i=0naixi‾,B(x)=∑i=0mbixi‾A(x)=\sum_{i=0}^na_ix^{\underline i},B(x)=\sum_{i=0}^mb_ix^{\underline i}A(x)=∑i=0naixi,B(x)=∑i=0mbixi 然后考虑把它们转成点值形式然后乘起来再转回去。 设现在F(x)=∑i=0nfix...原创 2019-08-02 21:53:50 · 341 阅读 · 0 评论 -
洛谷P5383 【模板】普通多项式转下降幂多项式(多项式多点求值)
已知普通多项式A(x)=∑i=0naixiA(x)=\sum_{i=0}^na_ix^iA(x)=∑i=0naixi 现在求B(x)=∑i=0nbixi‾B(x)=\sum_{i=0}^nb_ix^{\underline i}B(x)=∑i=0nbixi使得A(x)=B(x)A(x)=B(x)A(x)=B(x) 思路: 考虑先多点求值,然后iffpiffpiffp即可求出对应的下降幂多项...原创 2019-08-03 11:28:56 · 317 阅读 · 0 评论 -
洛谷P5393 【模板】下降幂多项式转普通多项式(多项式快速插值)
传送门 已知下降幂多项式A(x)=∑i=0naixi‾A(x)=\sum_{i=0}^na_ix^{\underline i}A(x)=∑i=0naixi 现在求普通多项式B(x)=∑i=0nbixiB(x)=\sum_{i=0}^nb_ix^iB(x)=∑i=0nbixi使得A(x)=B(x)A(x)=B(x)A(x)=B(x) 思路: 考虑先ffpffpffp转点值,然后快速插值即可...原创 2019-08-03 15:14:27 · 568 阅读 · 1 评论 -
洛谷P5396 【模板】第二类斯特林数·列(生成函数+分治ntt/倍增ntt)
传送门 给出同阶的n,kn,kn,k 要求在O(klog2k)O(k\log^2k)O(klog2k)时间内处理出第二类斯特林数的第kkk列。 即求出Sik,0≤i≤nS_{i}^{k},0\le i\le nSik,0≤i≤n 思路: 考虑第kkk列斯特林数的生成函数: Sk(x)=∑i=0∞Sikxi=∑i=0∞(Si−1k−1+Si−1kk)xi=kxSk(x)+Sk−1(x)S_k(x...原创 2019-08-03 22:01:29 · 562 阅读 · 0 评论 -
洛谷P4723 【模板】线性递推(多项式取模+快速幂)
传送门 解析见这篇博客 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|1; inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&&(ob=(ib=bu...原创 2019-08-07 22:10:36 · 354 阅读 · 0 评论 -
bzoj4228:Tibbar的后花园(生成函数+多项式exp)
传送门 考虑只可能由链或者长度不为3倍数的三的环组成。 然后就把环和链的生成函数列出来生成集合。 多项式expexpexp即可。 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int mod=1004535809,N=1e6+5; typedef long long ll; ...原创 2019-08-06 21:59:59 · 530 阅读 · 0 评论 -
洛谷P4705 玩游戏(生成函数+分治ntt)
传送门 sbsbsb题。。。 考虑到Anst=1nm∑i=1n∑j=1m(ai+bj)t=1nm∑i=1n∑j=1m∑k=0tCtkaikbjt−k=t!nm∗[xn]((∑i≥0∑j=1najij!xi)(∑i≥0∑j=1mbjij!xi))\begin{aligned}Ans_t=&\frac1{nm}\sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^t\\=...原创 2019-08-14 00:07:33 · 250 阅读 · 0 评论 -
LOJ#2409. 「THUPC 2017」小 L 的计算题 / Sum(生成函数)
传送门 直接把答案的OGFOGFOGF搞出来然后交换和式变形即可: F=∑i≥0fixiF=∑i≥0xi∑j=1najiF=∑j=1n∑i≥0(ajx)iF=∑i=1n11−aixF=∑i=1n(1+aix1−aix)F=n+x∑i=1nai1−aixF=n−x(∑i=1nln(1−aix))\begin{aligned}F=&\sum_{i\ge0}f_ix^i\\F=&...原创 2019-08-09 19:23:23 · 337 阅读 · 0 评论 -
洛谷P4389 付公主的背包(生成函数)
传送门 按照这上面写的推导化简并操作就可以水过这个菜题。 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|5; inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&am...原创 2019-08-10 02:07:14 · 374 阅读 · 0 评论 -
第二类斯特林数小结
第二类斯特林数 s2nms2_n^ms2nm表示将nnn个数放进mmm个集合的方案数。 有一个显然的递推式: s2nm=s2n−1m−1+m∗s2n−1ms2_n^m=s2_{n-1}^{m-1}+m*s2_{n-1}^ms2nm=s2n−1m−1+m∗s2n−1m,对应的意义:要么第nnn个单独构成一个新的集合,要么放在之前某个集合中。 然而第二类斯特林数并没有什么生成函数。 但它可以花...原创 2019-04-02 22:02:18 · 954 阅读 · 0 评论 -
第一类斯特林数小结
第一类斯特林数 s1nms1_n^ms1nm表示将nnn个数放进mmm个圆排列的方案数。 有一个显然的递推式: s1nm=s1n−1m−1+(n−1)s1n−1ms1_n^m=s1_{n-1}^{m-1}+(n-1)s1_{n-1}^ms1nm=s1n−1m−1+(n−1)s1n−1m,对应的意义:要么第nnn个单独构成一个新的圆排列,要么放在之前某个数的后面。 还有一种组合意义:一共进行...原创 2019-04-02 21:33:18 · 896 阅读 · 0 评论 -
2018.11.16 bzoj4827: [Hnoi2017]礼物(ntt)
传送门 nttnttntt 入门题。 考虑展开要求的式子∑i=0n−1(xi−yi−c)2\sum_{i=0}^{n-1}(x_i-y_i-c)^2∑i=0n−1(xi−yi−c)2 =&amp;amp;amp;amp;amp;amp;gt;∑i=0n−1(xi2+yi2+c2−2c(xi−yi)−2xiyi)\sum_{i=0}^{n-1}(x_i^2+y_i^2+c^2-2c(x_i-y_i)-2x_iy_i)∑i=0n−1(xi2...原创 2018-11-16 21:50:32 · 213 阅读 · 0 评论 -
2018.11.17 hdu5829Rikka with Subset(ntt)
传送门 nttnttntt基础题。 考虑计算每一个数在排名为kkk时被统计了多少次来更新答案。 这样的话,设anskans_kansk表示所有数的值乘上排名为kkk的子集数的总和。 则ansk=∑i=knai(i−1k−1)2n−ians_k=\sum_{i=k}^na_i\binom{i-1}{k-1}2^{n-i}ansk=∑i=knai(k−1i−1)2n−i =>ansk=...原创 2018-11-17 23:22:44 · 236 阅读 · 0 评论 -
洛谷 P4721 【模板】分治 FFT
传送门 如同题目所描述的一样,这是一道板题。 题意简述:给你一个数组g1,2,...ng_{1,2,...n}g1,2,...n并定义f0=1,fi=∑j=1ifi−jgjf_0=1,f_i=\sum_{j=1}^if_{i-j}g_jf0=1,fi=∑j=1ifi−jgj,让你求f0,1,...,nf_{0,1,...,n}f0,1,...,n 解析 代码 : #include&...原创 2019-01-04 10:56:25 · 218 阅读 · 0 评论 -
多项式相关&&生成函数相关&&一些题目(updating...)
索引 多项式乘法 多项式求逆 多项式求导 多项式积分 多项式乘法 这个大家应该都会吧 还是简单推推式子吧。 已知的: A(x)=∑i=0naixiA(x)=\sum_{i=0}^na_ix^iA(x)=∑i=0naixi B(x)=∑i=0mbixiB(x)=\sum_{i=0}^mb_ix^iB(x)=∑i=0mbixi 要求的: C(x)=A(x)B(x)=∑i=0n+m(∑j=0...原创 2018-12-30 10:50:32 · 1516 阅读 · 0 评论 -
洛谷P4238 【模板】多项式求逆
传送门 多项式求逆模板题。 简单讲讲? 多项式求逆 定义: 对于一个多项式A(x)A(x)A(x),如果存在一个多项式B(x)B(x)B(x),满足B(x)B(x)B(x)的次数小于等于A(x)A(x)A(x)且A(x)B(x)≡1mod&ThinSpace;&ThinSpace;xnA(x)B(x)≡1 \mod x^nA(x)B(x)≡1modxn,那么我们称B(x)为A(x...原创 2018-12-30 15:49:02 · 238 阅读 · 0 评论 -
bzoj3992: [SDOI2015]序列统计(生成函数+ntt+快速幂)
传送门 生成函数简单题。 题意:给出一个集合A={a1,a2,...as}A=\{a_1,a_2,...a_s\}A={a1,a2,...as},所有数都在[0,m−1][0,m-1][0,m−1]之间,mmm是一个质数,求满足全部由这个集合里的组成且长度为nnn且所有数之积与xxx在模mmm意义下相同的数列总数。 思路:对a1,a2,..,as,xa_1,a_2,..,a_s,xa1,...原创 2018-12-31 17:43:57 · 355 阅读 · 0 评论 -
洛谷 P4725/P4726 多项式对数/指数函数(牛顿迭代)
4725传送门 4726传送门 解析 代码: #include<bits/stdc++.h> #define ri register int using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch...原创 2019-01-01 19:31:26 · 449 阅读 · 0 评论 -
bzoj3625:小朋友和二叉树(生成函数+多项式求逆+多项式开方)
传送门 生成函数好题。 卡场差评至今未过 题意简述:nnn个点的二叉树,每个点的权值KaTeX parse error: Expected 'EOF', got '\inC' at position 4: v_i\̲i̲n̲C̲=\{a_1,a_2,...a…,定义一棵树的权值为所有点的权值之和,问有多少棵树满足其权值等于i(i=1,2,...,m)i(i=1,2,...,m)i(i=1,2,.....原创 2019-01-01 21:09:30 · 269 阅读 · 0 评论 -
洛谷P4512 【模板】多项式除法
传送门 解析 代码: #include<bits/stdc++.h> #define ri register int using namespace std; typedef long long ll; #define add(a,b) ((a)+(b)>=mod?(a)+(b)-mod:(a)+(b)) #define dec(a,b) ((a)>=(b)?(a)-(b)...原创 2019-01-02 00:57:11 · 399 阅读 · 0 评论 -
bzoj3456: 城市规划(生成函数+多项式取对)
传送门 生成函数好题。 题意:求n个点的简单(无重边无自环)无向连通图数目 思路: 对简单无向图构造生成函数f(x)=∑n2Cn2xnn!f(x)=\sum_n2^{C_n^2}\frac{x^n}{n!}f(x)=∑n2Cn2n!xn 然后令答案的生成函数为g(x)=∑ncnxnn!g(x)=\sum_nc_n\frac{x^n}{n!}g(x)=∑ncnn!xn 由于f(x)f(...原创 2019-01-03 01:10:30 · 349 阅读 · 0 评论 -
codeforces 632E. Thief in a Shop(生成函数)
传送门 题意简述:给nnn个物件,物件iii有一个权值aia_iai,可以选任意多个。现在要求选出kkk个物件出来(允许重复)问最后得到的权值和的种类数。 n,k,ai≤1000n,k,a_i\le1000n,k,ai≤1000 思路: 这是一道很显然的生成函数,我们把选一个物件的生成函数给列出来,然后取它的kkk次方就是答案。 显然可以上一波fftfftfft 成功T飞 在博主卡场无果之后...原创 2019-01-26 11:26:36 · 490 阅读 · 0 评论 -
codeforces 1096G. Lucky Tickets(生成函数)
传送门 题意简述:现在有一些号码由000~999中的某些数字组成(会给出),号码总长度为nnn,问有多少个号码满足前n2\frac n22n个数码的和等于后n2\frac n22n个数码的和(保证nnn是偶数),答案对998244353998244353998244353取模。 思路: 一道挺显然的生成函数+快速幂。 考虑到前n2\frac n22n个数码和的生成函数和后n2\frac n...原创 2019-01-26 11:58:06 · 495 阅读 · 0 评论 -
bzoj3451: Tyvj1953 Normal(点分治+ntt)
传送门 利用期望的线性性。 考虑到iii在jjj子树中的概率为1dist(i,j)\frac1{dist(i,j)}dist(i,j)1,于是问题变成了统计两点间距离的出现次数。 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|1; ...原创 2019-08-22 21:43:48 · 246 阅读 · 0 评论