随笔分类 -  数论——FFT/NTT/多项式/生成函数

摘要:XVI. "CF1251F Red White Fence" 这题充分显现出了FFT~~工具人~~的本性。 对于这个奇奇怪怪的图形的周长,我们平移平移就能发现,它为$\text{(红木板长度+总木板数量)} 2$。有了这个结论,我们只需要枚举当前用的是哪块红木板(红木板数量$\leq 5$),再求出 阅读全文
posted @ 2020-04-25 12:09 Troverld 阅读(136) 评论(0) 推荐(0)
摘要:XV. "[HEOI2016/TJOI2016]求和" 题意:求一个东西 $\LARGE\sum\limits_{i=0}^n\sum\limits_{j=0}^iS_i^j 2^j j!$ 其中$S_i^j$为第二类斯特林数,递推公式为$S_n^m=S_{n 1}^{m 1}+m S_{n 1}^ 阅读全文
posted @ 2020-04-25 12:08 Troverld 阅读(266) 评论(0) 推荐(0)
摘要:XIV. "[SDOI2017]序列计数" 一眼看出这题就是$\text{答案}=\text{总数量} \text{不选质数数量}$。反正两个都是随便卷卷就出来了。 不过,这题模数极为恶心,要么逼着你敲任意模数NTT(~~很明显我不会~~),要么就只能写FFT。但是,FFT会挂掉,因为不能及时取模, 阅读全文
posted @ 2020-04-25 12:06 Troverld 阅读(125) 评论(0) 推荐(0)
摘要:XIII. "[SDOI2015]序列统计" 一个非常naive的想法就是多项式快速幂。 我们令一个函数$f_1(x)=[x\in S]$。并有$f_i(x)=\sum\limits_{ij\equiv x\mod m}f_{i 1}(i) f_{i 1}(j)$。则答案为$f_n(x)$。 后面那 阅读全文
posted @ 2020-04-25 12:03 Troverld 阅读(226) 评论(0) 推荐(0)
摘要:XII. "CF827E Rusty String" 依旧推式子。假设当前我们处理$'V'$字符,那么我们令$f(x)=[s_x='V"\lor s_x='?']$。我们设答案为$p(x)$,那么有$p(x)=\sum\limits_{i=x}^{n 1}f(i)f(i x)$。 老套路,翻转$f$ 阅读全文
posted @ 2020-04-25 12:00 Troverld 阅读(140) 评论(0) 推荐(0)
摘要:XI. "CF632E Thief in a Shop" 听说这题NTT常见的模数都会被卡?orzorz。 一看就是一个完全背包的样式。当然咯,FFT题当然应该用FFT做呀。我们构建$g(x)=[x\in \text{商品价值的集合}]$。计算$g^k$,答案即为$g^k(x)$所有有值的位置。 代 阅读全文
posted @ 2020-04-25 11:59 Troverld 阅读(98) 评论(0) 推荐(0)
摘要:X. "CF1096G Lucky Tickets" 这题一个NTT快速幂的形式就非常明显了。直接构建一个函数$g(x)=[x\in \text{给出的k个数码}]$。则我们要求的就是$\sum\limits_{i=0}^{\infty}(g^{n/2}(i))^2$。由于模数是$998244353 阅读全文
posted @ 2020-04-25 11:57 Troverld 阅读(115) 评论(0) 推荐(0)
摘要:IX. "CF993E Nikita and Order Statistics" 首先,一上来就能想到的思路,对于$ using namespace std; define int long long const double pi=acos( 1); int n,m,cnt[1 1] 1)|((i 阅读全文
posted @ 2020-04-25 11:56 Troverld 阅读(148) 评论(0) 推荐(0)
摘要:VIII. "[JSOI2012]分零食" 首先,暴力的DP是非常轻松的。设$f_{i,j}$为(前$i$个人,分了$j$颗糖)的种数,再设$g_i$为(一个人拿到$i$颗糖的快乐度),即$(Oi^2+Sx+U)$。 首先,我们可以将人数$A$与糖数$M$取$\min$,因为反正最多只有前$M$个人 阅读全文
posted @ 2020-04-25 11:55 Troverld 阅读(1186) 评论(0) 推荐(0)
摘要:VII. "万径人踪灭" ~~跑题了跑题了~~ 我们可以知道, $\text{答案=位置对称且字符对称的子序列的数量 回文子串数}$ 关于回文子串数,我们可以使用Manacher算法在$O(n)$时间内实现。如果不会的话,可以参加鄙人的 "拙作" ,这里不再赘述。 那么如何求出 位置对称且字符对称的 阅读全文
posted @ 2020-04-25 11:49 Troverld 阅读(141) 评论(0) 推荐(0)
摘要:VII. "CF954I Yet Another String Matching Problem" ~~FFT做字符串匹配就是有意思~~ 我们首先必须要搞清楚暴力匹配是什么样的过程。 例: | 位置 | 0 | 1 | 2 | 3 | | : : | : : | : : | : : | : : | 阅读全文
posted @ 2020-04-25 11:47 Troverld 阅读(155) 评论(0) 推荐(0)
摘要:VI. "CF528D Fuzzy Search" 照旧分字符处理。 首先,我们可以算出每个字符是否可以填入每个位置。 例如,当文本串为$AGGACC,k=1$时,以下这张表表示了每个位置是否可以填入每个字符: ||0|1|2|3|4|5| | : : | : : | : : | : : | : : 阅读全文
posted @ 2020-04-22 22:15 Troverld 阅读(97) 评论(0) 推荐(0)
摘要:V. "[计蒜客 A1676]Rock Paper Scissors Lizard Spock" 我们设两个串分别为模式串$s$和文本串$t$,长度分别为$S$和$T$,下标从$0$开始。 我们可以枚举当前出的手势。将$s$中所有是当前手势的位置赋成$1$,不是当前手势的位置赋成$0$。将$t$中所 阅读全文
posted @ 2020-04-22 22:14 Troverld 阅读(123) 评论(0) 推荐(0)
摘要:IV. "UVALive4671 K neighbor substrings" 因为是$AB$串,所以我们之前II. "残缺的字符串" 的式子中$t_i s_i$的值只有可能为$ 1,0,1$。这样的话,直接平方后,判别式给出的结果就是题目中的‘Hamming distance’,即不同字符数。 但 阅读全文
posted @ 2020-04-22 22:13 Troverld 阅读(117) 评论(0) 推荐(0)
摘要:"UVA12879 Golf Bot" 或许我应该把这道题放到I. "BZOJ3513: [MUTC2013]idiots" 前面的QaQ。 这题完全就是那题的子问题,直接暴力FFT一下即可。连特殊情况都不需要考虑。 感觉这题被恶评了,应该是紫 ,不可能到黑。 代码: 阅读全文
posted @ 2020-04-22 22:12 Troverld 阅读(79) 评论(0) 推荐(0)
摘要:残缺的字符串 莫名其妙最后三个点总是T……但是代码是没问题的。 我们设两个串分别为模式串$s$和文本串$t$,长度分别为$S$和$T$,下标从$0$开始。 先考虑没有通配符的情形。 则如果在$t$串中以位置$x$结尾的$S$个字符可以与串$s$匹配的话,必有$\sum_^t_{x+i-S-1}-s_ 阅读全文
posted @ 2020-04-22 22:11 Troverld 阅读(112) 评论(0) 推荐(0)
摘要:"BZOJ3513: [MUTC2013]idiots" FFT只是一个工具,重点还是你如何运用。 我们设一个函数$a(x)$表示长度为$x$的共有$a(x)$根木棍;设一个$f(x)$表示选出$2$根木棍长度和为$x$共有$f(x)$种方法。显然,$f(x)=\sum_{y=0}^x a(y)a( 阅读全文
posted @ 2020-04-22 22:04 Troverld 阅读(76) 评论(0) 推荐(0)
摘要:为了自己以后再用FFT时不再一脸懵X,本蒟蒻决定感性理解一下FFT。 FFT可以干啥? 把两个多项式乘在一起。 具体地说,对于两个多项式$f:f(x)=\Sigma_{i=0}^n f_i x^i$和$g:g(x)=\Sigma_{i=0}^m g_i x^i$,得到一个多项式$h:h(x)=\Si 阅读全文
posted @ 2020-04-22 21:48 Troverld 阅读(176) 评论(0) 推荐(0)