Luogu 4238 【模板】多项式求逆】的更多相关文章

题目链接 设多项式\(f(x)\)在模\(x^n\)下的逆元为\(g(x)\) \[f(x)g(x)\equiv 1\ (mod\ x^n)\] \[f(x)g(x)-1\equiv 0\ (mod\ x^n)\] \[f^2(x)g^2(x)-2f(x)g(x)+1\equiv 0\ (mod\ x^{2n})\] \[2f(x)g(x)-f^2(x)g^2(x)\equiv 1\ (mod\ x^{2n})\] \[2f(x)g(x)-f^2(x)g^2(x)\equiv f(x)g'(x)…
前言 多项式求逆还是爽的一批 Solution 考虑分治求解这个问题. 直接每一次NTT一下就好了. 代码实现 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include<algorithm> #include<queue> #include<iostream> using namespace std; #define…
题目:https://www.luogu.org/problemnew/show/P4238 看博客:https://www.cnblogs.com/xiefengze1/p/9107752.html https://www.cnblogs.com/Mychael/p/9045143.html 注意那个 \( \left\lceil n/2 \right\rceil \),因为如果 n = 6,那么 6 = 0+6 = 1+5 = 2+4 = 3+3,对 0,1,2,3 都有要求,所以下一层传…
手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: https://www.luogu.org/problemnew/show/P4725 题目大意: 给定一个\(n\)次多项式\(A(x)\), 求一个\(n\)次多项式\(B(x)\)满足\(B(x)\equiv \ln A(x) (\mod x^n)\) 题解: 神数学模板题-- 数学真奇妙! 前驱…
NTT多项式求逆模板,详见代码 #include <map> #include <set> #include <stack> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #…
传送门 多项式求逆模板题. 简单讲讲? 多项式求逆 定义: 对于一个多项式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)A(x)A(x)在模xnx^nxn意义下的逆元,简单记作A−1(x)A^{−1}(x)A−1(x) 求法: n…
题目:https://www.luogu.org/problemnew/show/P4721 分治做法,考虑左边对右边的贡献即可: 注意最大用到的 a 的项也不过是 a[r-l] ,所以 NTT 可以只做到 2*(r-l),能快一倍. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long…
洛谷P4238 多项式求逆:http://blog.miskcoo.com/2015/05/polynomial-inverse 注意:直接在点值表达下做$B(x) \equiv 2B'(x) - A(x)B'^2(x) \pmod {x^n}$是可以的,但是一定要注意,这一步中有一个长度为n的和两个长度为(n/2)的多项式相乘,因此要在DFT前就扩展FFT点值表达的“长度”到2n,否则会出错(调了1.5个小时) 备份 版本1: #prag\ ma GCC optimize() #include…
思路 多项式求逆就是对于一个多项式\(A(x)\),求一个多项式\(B(x)\),使得\(A(x)B(x) \equiv 1 \ (mod x^n)\) 假设现在多项式只有一项,显然\(B(x)\)的第0项(常数项)就是\(A(x)\)的第0项(常数项)的逆元(所以\(A(x)\)有没有逆元取决于\(A(x)\)的常数项有没有逆元) 那我们可以利用递归的方法, 现在要求 \[ A(x)B(x) \equiv 1 (mod\ x^n) \] 假设有多项式\(B'(x)\),满足 \[ A(x)B'…
前言 学习了Great_Influence的递推实现,我给大家说一下多项式求逆严格的边界条件,因为我发现改动一些很小的边界条件都会使程序出错.怎么办,背代码吗?背代码是不可能,这辈子都不会背代码的.理解了边界条件就不会出错了. 分析 理论基础 \[A \times B \equiv 1 \qquad (\mod{x^n})\] \[A \times B' \equiv 1 \qquad (\mod{x^{\frac{n}{2}}})\] \[A \times (B-B') \equiv 0 \q…
FFT #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<algorithm> #define maxn 1000005 using namespace std; inline int read() { ,f=;char ch=getchar(); ; +ch-'; return x*f; }…
题目大意:多项式求逆 题解:$ A^{-1}(x) = (2 - B(x) * A(x)) \times B(x) \pmod{x^n} $ ($B(x)$ 为$A(x)$在$x^{\lceil \dfrac{n}{2} \rceil}$下的逆元) 卡点:无 C++ Code: #include <cstdio> #define int long long #define maxn 262144 using namespace std; const int mod = 998244353; c…
传送门 我是用多项式求逆做的因为分治FFT看不懂…… upd:分治FFT的看这里 话说这个万恶的生成函数到底是什么东西…… 我们令$F(x)=\sum_{i=0}^\infty f_ix^i,G(x)=\sum_{i=0}^\infty g_ix^i$,且$g_0=0$ 这俩玩意儿似乎就是$f(x)$和$g(x)$的生成函数 那么就有$$F(x)G(x)=\sum_{i=0}^\infty x^i\sum_{j+k=i}f_jg_k$$ 然后根据题目,有$$f_i=\sum_{j=1}^if_{…
传送门 咱用的是拆系数\(FFT\)因为咱真的不会三模数\(NTT\)-- 简单来说就是把每一次多项式乘法都改成拆系数\(FFT\)就行了 如果您还不会多项式求逆的左转->这里 顺带一提,因为求逆的时候要乘两次,两次分开乘,否则会像咱一样炸精度 //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i…
hdu 5730 Shell Necklace 题意:求递推式\(f_n = \sum_{i=1}^n a_i f_{n-i}\),模313 多么优秀的模板题 可以用分治fft,也可以多项式求逆 分治fft 注意过程中把r-l+1当做次数界就可以了,因为其中一个向量是[l,mid],我们只需要[mid+1,r]的结果. 多项式求逆 变成了 \[ A(x) = \frac{f_0}{1-B(x)} \] 的形式 要用拆系数fft,直接把之前的代码复制上就可以啦 #include <iostream…
第一眼生成函数.四个等比数列形式的多项式相乘,可以化成四个分式.其中分母部分是固定的,可以多项式求逆预处理出来.而分子部分由于项数很少,询问时2^4算一下贡献就好了.这个思路比较直观.只是常数巨大,以及需要敲一发类似任意模数ntt的东西来避免爆精度.成功以这种做法拿下luogu倒数rank1,至于bzoj不指望能过了. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib>…
[BZOJ3625/CF438E]小朋友和二叉树(多项式求逆,多项式开方) 题面 BZOJ CodeForces 大致题意: 对于每个数出现的次数对应的多项式\(A(x)\) 求\[f(x)=\frac{2}{\sqrt{-4A(x)+1}+1}\] 题解 多项式开方+多项式求逆模板题 我之前写的多项式求逆很丑,常数大的惊人 成功拿到洛谷模板题倒数第一的速度 于是,我学习了一波Gay神的写法 写了一下这道题目 具体的细节暂时不写了,以后肯定有机会的写的(这点我可以保证) #include<ios…
牛顿迭代 若 \[G(F_0(x))\equiv 0(mod\ x^{2^t})\] 牛顿迭代 \[F(x)\equiv F_0(x)-\frac{G(F_0(x))}{G'(F_0(x))}(mod\ x^{2^{t+1}})\] 以下多数都可以牛顿迭代公式一步得到 多项式求逆 给定\(A(x)\)求满足\(A(x)*B(x)=1\)的\(B(x)\) 写成 \[A(x)*B(x)=1(mod \ x^n)\] 我们会求\[A(x)*B(x)=1(mod \ x^1)\] 然后我们考虑求\[A…
传送门 可以……这很多项式开根模板……而且也完全不知道大佬们怎么把这题的式子推出来的…… 首先,这题需要多项式开根和多项式求逆.多项式求逆看这里->这里,这里讲一讲多项式开根 多项式开方:已知多项式$B$,求多项式$A$满足$A^2\equiv B\pmod{x^n}$(和多项式求逆一样这里需要取模,否则$A$可能会有无数项) 假设我们已经求出$A'^2\equiv B\pmod{x^n}$,考虑如何计算出$A^2\equiv B\pmod{x^{2n}}$ 首先肯定存在$A^2\equiv B…
一.多项式求逆 给定一个多项式 \(F(x)\),请求出一个多项式 \(G(x)\), 满足 \(F(x) * G(x) \equiv 1 ( \mathrm{mod\:} x^n )\).系数对 \(998244353\)取模. 考虑递归求解,当\(F\)的最高次为\(0\)时,\(G_0=F_0^{-1}\) 假设我们知道了\(F(x)\)在模\(x^{\left \lceil \frac{n}{2}\right \rceil}\)意义下的逆元\(G'\) 那么\(F∗G′≡1(\mathr…
正题 题目链接:https://www.luogu.com.cn/problem/P6295 题目大意 求所有\(n\)个点的弱联通\(DAG\)数量. \(1\leq n\leq 10^5\) 解题思路 先不考虑弱联通的限制,求\(n\)个点的\(DAG\)数量. 设为\(f_i\),那么有式子 \[f_n=\sum_{i=1}^{n}\binom{n}{i}2^{i(n-i)}f_{n-i}(-1)^{i+1} \] 这个式子的意思是说新建一层出度为\(0\)的点,\(\binom{n}{i…
正题 题目链接:https://www.luogu.com.cn/problem/P4233 题目大意 随机选择一条有哈密顿回路的\(n\)个点的竞赛图,求选出图的哈密顿回路的期望个数. 对于每个\(n\in[1,N]\)求答案. \(1\leq N\leq 10^5\) 解题思路 竟然自己推出来了泪目( Ĭ ^ Ĭ ) 如果是统计所以的哈密顿回路个数是一个很简单的题目,我们可以求出\(n\)的一个圆排列表示一条回路,然后剩下的边随便排即可.也就是\((n-1)!\times 2^{\frac{…
4555: [Tjoi2016&Heoi2016]求和 题意:求\[ \sum_{i=0}^n \sum_{j=0}^i S(i,j)\cdot 2^j\cdot j! \\ S是第二类斯特林数 \] 首先你要把这个组合计数肝出来,于是我去翻了一波<组合数学> 用斯特林数容斥原理推导那个式子可以直接出卷积形式,见下一篇,本篇是分治fft做法 组合计数 斯特林数 \(S(n,i)\)表示将n个不同元素划分成i个相同集合非空的方案数 Bell数 \(B(n)=\sum\limits_{i=…
定义多项式$h(x)$的每一项系数$h_i$,为i在c[1]~c[n]中的出现次数. 定义多项式$f(x)$的每一项系数$f_i$,为权值为i的方案数. 通过简单的分析我们可以发现:$f(x)=\frac{2}{\sqrt{1-4h(x)}+1}$ 于是我们需要多项式开方和多项式求逆. 多项式求逆: 求$B(x)$,使得$A(x)*B(x)=1\;(mod\;x^m)$ 考虑倍增. 假设我们已知$A(x)*B(x)=1\;(mod\;x^m)$,要求$C(x)$,使得$A(x)*C(x)=1\;…
前言 emmm暂无 多项式求逆目的 顾名思义 就是求出一个多项式的摸xn时的逆 给定一个多项式F(x),请求出一个多项式G(x),满足F(x)∗G(x)≡1(modxn),系数对998244353取模. 多项式求逆主要思路 我们考虑用递推的做法 假设我们当前已知F(x)H(x)=1(mod xi/2) 要求的是F(x)Q(x)=1(mod xi) 因为F(x)Q(x)=1(mod xi) 所以F(x)Q(x)=1(mod xi/2) 可得F(x)(Q(x)-H(x))=0(mod xi/2) 显…
题面 求有 \(n\) 个点的无向有标号连通图个数 . \((1 \le n \le 1.3 * 10^5)\) 题解 首先考虑 dp ... 直接算可行的方案数 , 容易算重复 . 我们用总方案数减去不可行的方案数就行了 (容斥) 令 \(f_i\) 为有 \(i\) 个点的无向有标号连通图个数 . 考虑 \(1\) 号点的联通块大小 , 联通块外的点之间边任意 但 不能与 \(1\) 有间接联系 . 那么就有 \[\displaystyle f_i = 2^{\binom i 2} - \s…
题意 链接 Sol Orz yyb 一开始想的是直接设\(f_i\)表示\(i\)个点的无向联通图个数,枚举最后一个联通块转移,发现有一种情况转移不到... 正解是先设\(g(n)\)表示\(n\)个点的无向图个数,这个方案是\(2^{\frac{i(i-1)}{2}}\)(也就是考虑每条边选不选) 考虑如何得到\(g\) \[g(n) = \sum_{i=0}^n C_{n-1}^{i-1}f(i) g(n-i)\] 直接将\(2^{\frac{n(n-1)}{2}}\)带入然后化简一下可以得…
传送门 调了1h竟然是因为1004535809写成了998244353 "恰好有\(K\)种颜色出现了\(S\)次"的限制似乎并不容易达到,考虑容斥计算. 令\(c_j\)表示强制\(j\)种颜色恰好出现\(S\)次,其他颜色随意染的方案数.可以通过生成函数知道 \(\begin{align*} c_j &= \binom{m}{j} n! [x^n] (\frac{x^k}{k!})^j (\sum\limits_{i=0}^\infty \frac{x^i}{i!})^{m…
题目大意 考虑一个含有\(n\)个互异正整数的序列\(c_1,c_2,\ldots ,c_n\).如果一棵带点权的有根二叉树满足其所有顶点的权值都在集合\(\{c_1,c_2,\ldots ,c_n\}\)中,我们的小朋友就会将其称作神犇的.并且他认为,一棵带点权的树的权值,是其所有顶点权值的总和. 给出一个整数\(m\),你能对于任意的\(s(1\leq s\leq m)\)计算出权值为\(s\)的神犇二叉树的个数吗? 我们只需要知道答案关于\(998244353\)取模后的值. \(n,m\…
题目大意 本题的满二叉树定义为:不存在只有一个儿子的节点的二叉树. 定义一棵满二叉树\(A\)包含满二叉树\(B\)当且经当\(A\)可以通过下列三种操作变成\(B\): 把一个节点的两个儿子同时删掉 把一棵子树替换成根的的左子树或右子树. 定义\(k\)连树为一棵只有恰好\(k\)个叶子的满二叉树,如果某个节点有一个右孩子,那么这个右孩子一定是一个叶子. 对于给定的\(k\)和\(n\),对于所有在\(1\)到\(n\)之间的\(i\),你需要求出所有叶子节点恰好为\(i\),且不包含\(k\…