多项式细节梳理&模板(多项式)】的更多相关文章

基础 很久以前的多项式总结 现在的码风又变了... FFT和NTT的板子 typedef complex<double> C; const double PI=acos(-1); void FFT(C*a,R op){ for(R i=0;i<N;++i) if(i<r[i])swap(a[i],a[r[i]]); for(R i=1;i<N;i<<=1){ C wn=C(cos(PI/i),sin(PI/i)*op),w=1,t; for(R j=0;j<…
初阶 扩展欧拉 \(k\ge\varphi(m)\)时,\(b^k\equiv b^{k\%\varphi(m)+\varphi(m)}(\bmod m\)) 扩展CRT 推式子合并同余方程. https://www.cnblogs.com/flashhu/p/9346078.html 扩展BSGS 根号大暴力,就是细节很多. https://www.cnblogs.com/flashhu/p/9737769.html 扩展Lucas 对于模数不是质数的,唯一分解为\(\prod p_i^{k_…
orzYCB 虚树 %自为风月马前卒巨佬% 用于优化一类树形DP问题. 当状态转移只和树中的某些关键点有关的时候,我们把这些点和它们两两之间的LCA弄出来,以点的祖孙关系连成一棵新的树,这就是虚树. 容易证明,如果关键点数量为\(m\),则虚树点数不超过\(2m\). 虚树的构建 dfs原树,对点进行dfn标号,并将关键点按dfn从小到大排序. 搞个栈,栈内的点满足:都在从栈顶的点到原树的根的一条链上. 现在我们准备加入一个点\(x\) 直接加可能破坏一条链的性质,于是把栈顶的元素弹掉直到可以加…
点击%XZY巨佬 向量的板子 #include<bits/stdc++.h> #define I inline using namespace std; typedef double DB; struct Vec{ DB x,y; I Vec(){x=y=0;} I Vec(DB a){x=a;y=0;} I Vec(DB a,DB b){x=a;y=b;} I friend istream&operator>>(istream&cin,Vec&a){ret…
炫酷反演魔术课件byVFK stO FDF Orz(证明全有%%%) 莫比乌斯反演 \(F(n)=\sum\limits_{d|n}f(d)\Rightarrow f(n)=\sum\limits_{d|n}\mu(\frac n d)F(d)\) \(F(n)=\sum\limits_{n|d}f(d)\Rightarrow f(n)=\sum\limits_{n|d}\mu(\frac d n)F(d)\) 推带\(\gcd\)的题常用式子:(实际上是借用了积性函数的式子) \([\gcd(…
[BZOJ3625/CF438E]小朋友和二叉树(多项式求逆,多项式开方) 题面 BZOJ CodeForces 大致题意: 对于每个数出现的次数对应的多项式\(A(x)\) 求\[f(x)=\frac{2}{\sqrt{-4A(x)+1}+1}\] 题解 多项式开方+多项式求逆模板题 我之前写的多项式求逆很丑,常数大的惊人 成功拿到洛谷模板题倒数第一的速度 于是,我学习了一波Gay神的写法 写了一下这道题目 具体的细节暂时不写了,以后肯定有机会的写的(这点我可以保证) #include<ios…
预备知识:FFT/NTT 多项式的逆 给定一个多项式 F(x)F(x)F(x),请求出一个多项式 G(x)G(x)G(x),满足 F(x)∗G(x)≡1(mod xn)F(x)*G(x) \equiv 1(mod\ x^n)F(x)∗G(x)≡1(mod xn). 系数对 998244353998244353998244353 取模,1≤n≤1051≤n≤10^51≤n≤105 首先将多项式的长度拓展至222的次幂,然后我们要求的是 G(x)∗F(x)≡1 (mod xn)G(x)*F(x) \…
多项式 代码 const int nsz=(int)4e5+50; const ll nmod=998244353,g=3,ginv=332748118ll; //basic math ll qp(ll a,ll b){ ll res=1; for(;b;a=a*a%nmod,b>>=1)if(b&1)res=res*a%nmod; return res; } ll inv(ll n){ return qp(n,nmod-2); } //polynomial operations //…
这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入格式 第一行两个整数 nn 和 mm,分别表示两个多项式的次数. 第二行 n+1n+1 个整数,表示第一个多项式的 00 到 nn 次项系数. 第三行 m+1m+1 个整数,表示第二个多项式的 00 到 mm 次项系数. 输出格式 一行 n+m+1n+m+1 个整数,表示乘起来后的多项式的 00 到 n+mn+m 次项系数. 样例一 input 1 2 1 2 1 2 1 output 1 4 5 2 explanation (1+…
自己整理出来的模板 存在的问题: 1.多项式求逆常数过大(尤其是浮点数FFT) 2.log只支持f[0]=1的情况,exp只支持f[0]=0的情况 有待进一步修改和完善 FFT: #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef double db; ); ,M=1e6+,mod=; int n,m,n2,a[N]; int Pow(int x,int p) { ; ,x=(ll)x*x%mod…
前言 这里的全家桶目前只包括了\(ln,exp,sqrt\).还有一些类似于带余数模,快速幂之类用的比较少的有时间再更,\(NTT\)这种前置知识这里不多说. 还有一些基本的导数和微积分内容要了解,建议不懂的可以先去翻翻高二数学书. 之后多项式算法基本是一环扣一环的,所以前面的看不懂对于后面的理解会造成很大影响. 本博客涉及内容偏浅 Tips 这里是一些我个人的模板书写习惯 习惯相关的问题:默认将读入的\(n\)变为\(2\)的整数次幂形式,目前为止这样的做法都不会影响正确性 正确性相关的问题:…
  进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(IFFT) 迭代实现 例题 「洛谷 P3803」「模板」多项式乘法(FFT) 题意简述 数据规模 快速数论变换(NTT) 原根 实现 NTT 模数 奇怪的模数 - 任意模数 NTT 三模 NTT 拆系数 FFT(MTT) 七次转五次 五次转四次 例题 「洛谷 P4245」「模板」任意模数 NTT 题意简述 数…
题目链接:洛谷.LOJ. FFT相关:快速傅里叶变换(FFT)详解.FFT总结.从多项式乘法到快速傅里叶变换. 5.4 又看了一遍,这个也不错. 2019.3.7 叕看了一遍,推荐这个. #include <cmath> #include <cctype> #include <cstdio> #include <algorithm> #define gc() getchar() const int N=1e6+5; const double PI=acos(…
题目链接 多项式除法 & 取模 很神奇,记录一下. 只是主要部分,更详细的和其它内容看这吧. 给定一个\(n\)次多项式\(A(x)\)和\(m\)次多项式\(D(x)\),求\(deg(Q)\leq n-m\)的多项式\(Q(x)\),满足\[A(x)=D(x)\times Q(x)+R(x)\] 其中\(R(x)\)可以看做是\(m-1\)次多项式(不足\(m-1\)次系数补\(0\)). 首先是想消除\(R(x)\)的影响. 对于一个\(n\)次多项式\(A(x)\),记\[A^R(x)=…
题目链接 设多项式\(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)…
手动博客搬家: 本文发表于20181127 08:39:42, 原地址https://blog.csdn.net/suncongbo/article/details/84559818 题目链接: https://www.luogu.org/problem/show?pid=4726 题意: 给定\(n\)次多项式\(A(x)\) 求多项式\(f(x)\)满足\(f(x)\equiv e^{A(x)} (\mod x^n)\) 题解 这个比对数函数复杂一些.. 前铺知识 泰勒展开 对于一个函数,我…
手动博客搬家: 本文发表于20181125 13:21:46, 原地址https://blog.csdn.net/suncongbo/article/details/84485718 题目链接: https://www.luogu.org/problemnew/show/P4238 题意: 给定\(n\)次多项式\(A(x)\), 求\(n\)次多项式\(B(x)\)满足\(B(x)A(x)\equiv 1(\mod x^n)\) 题解: DFT,每个数对\(998244353\)求逆元.IDF…
自己码了一个模板...有点辛苦...常数十分大,小心使用 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> #include <time.h> #include <stdlib.h> #include <algorithm> #include <vector> using namespace std; #de…
A(x)k=eklnA(x).泰勒展开之后容易发现k并非在指数上,所以对p取模. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N 600010 #define P 9…
https://www.cnblogs.com/HocRiser/p/8207295.html 安利! #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define P 9982443…
https://www.cnblogs.com/HocRiser/p/8207295.html 安利! #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define P 9982443…
题目链接:洛谷.LOJ. 为什么和那些差那么多啊.. 在这里记一下原根 Definition 阶 若\(a,p\)互质,且\(p>1\),我们称使\(a^n\equiv 1\ (mod\ p)\)成立的最小正整数\(n\)为\(a\)模\(p\)的阶,记作\(\delta_p(a)\). 例:\(\delta_7(2)=3\). 原根 设\(p\)是正整数,\(a\)是整数,若\(\delta_p(a)=\varphi(m)\),则称\(a\)为模\(p\)的一个原根. 从另一方面来说,若\(g…
题目:https://www.luogu.org/problemnew/show/P4512 看博客:https://www.cnblogs.com/owenyu/p/6724611.html https://www.cnblogs.com/Mychael/p/9216906.html 注意取模那里的 NTT 范围就是模数的次数: 各处注意一下对系数数组取模(超出的位置赋0). 代码如下: #include<iostream> #include<cstdio> #include&l…
题目: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 都有要求,所以下一层传…
Rt 注意len要为2的幂 #include <bits/stdc++.h> using namespace std; const double PI = acos(-1.0); inline int read() { char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=get…
链接:https://ac.nowcoder.com/acm/contest/160/C 来源:牛客网 多项式 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 求\lim\limits_{x\to +\infty}\frac{f(x)}{g(x)} x→+∞ lim ​ g(x) f(x) ​ ,其中f和g是关于x的多项式. 输入描述: 两行,第一行为f,第二行为g. f和g都用一个由小…
设代数式序列 $q_1(t), q_2(t), ..., q_{n-1}(t)$ ,由它们生成的多项式形式的表达式(不一定是多项式): $$p(t)=x_1+x_2q_1(t)+...x_nq_1(t)q_2(t)..q_{n-1}(t)=\sum\limits_{i=1}^n(x_i\prod\limits_{j=1}^{i-1}q_j(t))$$ 一般来讲,按照这个形式计算函数在 $t_0$ 点的取值的复杂度为:n-1次 $q_i(t)$ 求值,n-1次浮点数乘法(生成n个不同的乘积),n-…
题目链接 https://atcoder.jp/contests/agc019/tasks/agc019_e 题解 tourist的神仙E题啊做不来做不来--这题我好像想歪了啊= =-- 首先我们可以考虑,什么样的操作序列才是合法的? 有用的位置只有两种,一种是两个序列在这个位置上都是1, 称作11型,另一种是一个0一个1, 称作01型.设两种位置分别有\(A\)个和\(2B\)个. 考虑一个操作序列,交换两个11型相当于没交换,每个11型只会被交换两次,每个01型只会被交换一次.这也就是说,如…
类的问题 继承类的原因:为了添加或者替换功能. 1. 继承时重写类的方法 v 替换功能 ① 将所有方法都设置为virtual(虚函数),以防万一. Virtual:经验表明最好将所有方法都设置为virtual,包括析构函数但不包括构造函数: 这样不必担心重写方法是否运行,这样做唯一的缺点是对性能具有轻微的影响: 即使某个类不大可能被扩展,最好还是将这个类的方法设置为virtual,以防万一. ② 重写方法的语法:在子类定义中重新声明这个方法,并在子类的实现文件中提供新的定义.(注意:方法定义中不…
NTT多项式求逆模板,详见代码 #include <map> #include <set> #include <stack> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #…