随笔分类 -  算法->多项式->FFT/NTT

摘要:LOJ2983. 「WC2019」数树 task0 有$i$条边一样答案就是$y^{n i}$ task1 这里有个避免容斥的方法,如果有$i$条边重复我们要算的是$y^{n i}$,设$a = y^{ 1}$那么我们可以对于选了i条边的方案算$a^{i}$ 可是这样需要容斥,所以有个神奇的技巧 $ 阅读全文
posted @ 2019-05-28 10:54 sigongzi 阅读(262) 评论(0) 推荐(0)
摘要:"原题链接" 多项式全家桶!快乐!(好像少个除法,不过有除法好像不太快乐) (说真的这是我第一次写exp和开根。。。水平不行。。 从最基础要实现的操作开始吧。。 多项式取模$x^n$ 这个。。很简单了,把大于等于n指数的系数全改成0就好了 多项式加减法 按位加/减,复杂度$O(n)$ 多项式求导数 阅读全文
posted @ 2019-01-15 17:44 sigongzi 阅读(935) 评论(0) 推荐(0)
摘要:题解 感觉智商为0啊QAQ 显然对于一个长度为$len$的border,每个点同余$n len$的部分必然相等 那么我们求一个$f[a]$数组,如果存在$s[x] = 0$且$s[y] = 1$且$|x y| = a$ 这个很好求,只要把0和1分别挑出来,NTT卷一下就好了 一个$len$合法,即它 阅读全文
posted @ 2018-12-15 13:11 sigongzi 阅读(210) 评论(0) 推荐(0)
摘要:题解 每种字符跑一遍FFT,得到$i + j = k$时匹配的个数(要÷2,对于相同位置的最后再加上 然后算出$2^{cnt[k]}$的和,最后再减去用mancher匹配出的连续回文子串的个数即可 代码 阅读全文
posted @ 2018-12-10 14:11 sigongzi 阅读(196) 评论(0) 推荐(0)
摘要:题解 简单分析一下,有$k$个环肯定是,我拆掉了$k 2$个,留最左两个,1步拆掉最左的,这个时候我还要把这$k 2$个环拼回去,拆一次$k 1$ 所以方案数就是$f[k] = f[k 1] + 2 f[k 2] + 1$ 然而太简单了,简单的都不是省选题了,所以他没让你取模= =,让你写FFT的高 阅读全文
posted @ 2018-12-08 22:16 sigongzi 阅读(217) 评论(0) 推荐(0)
摘要:题解 这个乘积比较麻烦,转换成原根的指数乘法就相当于指数加和了,可以NTT优化 注意判掉0 代码 阅读全文
posted @ 2018-12-06 08:03 sigongzi 阅读(213) 评论(0) 推荐(0)
摘要:题解 简单容斥题 至少选了$k$个颜色恰好出现$S$次方案数是 $F[k] = \binom{M}{k} \frac{N!}{(S!)^{k}(N i S)!}(M k)^{N i S}$ 然后恰好$k$个颜色恰好出现$k$次就是 $g[k] = \sum_{j = k}^{M} ( 1)^{k j 阅读全文
posted @ 2018-12-01 10:57 sigongzi 阅读(325) 评论(0) 推荐(1)
摘要:题解 在我写过分治NTT,多项式求逆之后 我又一次写了多项式求ln 我们定义一个数列的指数型生成函数为 $\sum_{i = 0}^{n} \frac{A_{i}}{i!} x^{i}$ 然后这个有个很好的性质,是什么呢,就是我们考虑两个排列$A$和$B$,不改变原来的顺序,把它们合并成一个排列,方 阅读全文
posted @ 2018-10-09 15:20 sigongzi 阅读(563) 评论(0) 推荐(0)
摘要:题解 一道非常神仙的计数题 如果只有一个点,就是非常简单的树型dp $f_{u} = (siz_{u} 1)! \prod_{v \in son_{u}} \frac{f_{v}}{siz_{v}!}$ $\frac{f_{u}}{siz_{u}!} = \frac{1}{siz_{u}} \pro 阅读全文
posted @ 2018-08-02 22:35 sigongzi 阅读(423) 评论(0) 推荐(0)
摘要:题解 一道神仙的题 include include include include include define enter putchar('\n') define space putchar(' ') define mp make_pair define pb push_back define 阅读全文
posted @ 2018-06-23 20:09 sigongzi 阅读(247) 评论(0) 推荐(0)
摘要:题解 这个字符集很小,我们可以把每个字符拿出来做一次匹配,把第一个字符串处理每个出现过的该字符处理成一个区间加,即最后变成第一个字符串的该位置能够匹配某字符 例如对于样例 10 4 1 AGCAATTCAT ACAT 我们做A的时候,把第一个串处理成 AAAAAA00AA0 第二个串 A0A0 那么 阅读全文
posted @ 2018-06-15 08:09 sigongzi 阅读(232) 评论(0) 推荐(0)
摘要:题解 小迪的blog : https://www.cnblogs.com/RabbitHu/p/9178645.html 请大家点推荐并在sigongzi的评论下面点支持谢谢! 掌握了小迪生成函数的有趣姿势之后,我们考虑一下这个问题 由于出题人语死早,我们认为是十种石头的生成函数直接乘起来 $\fr 阅读全文
posted @ 2018-06-13 20:28 sigongzi 阅读(365) 评论(1) 推荐(1)
摘要:题解 我当时连$n^2$的树背包都搞不明白,这道题稳稳的爆零啊= = 然后听说这道题需要FFT……我当时FFT的板子都敲不对,然后这道题就扔了 然后,我去考了thusc……好吧,令人不愉快的经历,听说我要是把这道题做了我大概就能A了D2T2……生无可恋.jpg 还有一个月,加油吧,NOI2018可能 阅读全文
posted @ 2018-06-06 07:32 sigongzi 阅读(553) 评论(0) 推荐(1)
摘要:题解 我,理解题解,用了一天 我,卡常数,又用了一天 到了最后,我才发现,我有个加法取模,写的是while(c = MOD) c = MOD 我把while改成if,时间,少了 六倍。 六倍。 六倍!!!! maya我又用第一次T的代码改掉了while,我第一次T的代码也A了= = 那我,改单位复根 阅读全文
posted @ 2018-05-26 20:01 sigongzi 阅读(407) 评论(1) 推荐(0)
摘要:题解 前置技能 1.多项式求逆 求$f(x)\ g(x) \equiv 1 \pmod {x^{t}}$ 我们在t == 1时,有$f[0] = frac{1}{g[0]}$ 之后呢,我们倍增一下,假如新的答案是$g'(x)$在$\pmod {x^{2t}}$意义下,显然有 $g'(x) g(x) 阅读全文
posted @ 2018-05-21 14:01 sigongzi 阅读(408) 评论(0) 推荐(0)
摘要:something wrong with my new blog! I can't type matrixs so I come back. qwq 题目:https://www.codechef.com/problems/BIKE 题解 是我naive了,二维和一维其实差不多 首先,n很小,t很大 阅读全文
posted @ 2018-04-17 18:01 sigongzi 阅读(563) 评论(0) 推荐(1)