![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多项式
文章平均质量分 89
Daniel__d
这个作者很懒,什么都没留下…
展开
-
P4389-EGF
P4389 题目描述 题解 我们写出每一件商品的生成函数: Fi(x)=1+xvi+x2vi+...=11−xvi F_i(x)=1+x^{v_i}+x^{2v_i}+...=\frac{1}{1-x^{v_i}} Fi(x)=1+xvi+x2vi+...=1−xvi1 那么将所有F(x)F(x)F(x)乘起来就是答案的生成函数: G(x)=∏i=1m(11−xi)ai G(x)=\prod\limits_{i=1}^m(\frac{1}{1-x^i})^{a_i} G(x)=i=1∏m(1−原创 2020-08-06 08:41:16 · 193 阅读 · 0 评论 -
P4841-EGF
P4841 题目描述 题目描 题解 代码 #include<bits/stdc++.h> #define ll long long using namespace std; const int g=3; const int mod=1004535809; const int M=2100009; char s; int read(){ int f=1,re=0;char ch; for(ch=getchar();!isdigit(ch)&&ch!='-';ch=getch原创 2020-08-05 21:25:25 · 247 阅读 · 0 评论 -
P4451-生成函数
P4451 题目描述 题解 代码 #include<bits/stdc++.h> #define int long long using namespace std; const int mod=1e9+7; int ksm(int a,int b){ int ans=1; while(b){ if(b&1) ans=ans*a%mod; a=a*a%mod; b>>=1; }return ans; } signed main(){ int re=0;原创 2020-08-04 22:36:35 · 163 阅读 · 0 评论 -
CF438E-生成函数
CF438E 题目描述 题解 代码 暴力O(n3)O(n^3)O(n3) #include<bits/stdc++.h> #define int long long #define M 1000009 using namespace std; int read(){ int f=1,re=0;char ch; for(ch=getchar();!isdigit(ch)&&ch!='-';ch=getchar()); if(ch=='-'){f=-1,ch=getchar(原创 2020-08-04 21:50:24 · 183 阅读 · 0 评论 -
BZOJ3513-FFT,组合数学
BZOJ3513 题目描述 题目大意:给定nnn个长度分别为aia_iai的木棒,问随机选择333个木棒能够拼成三角形的概率。 题解 代码 #include <cmath> #include <cstdio> #include <climits> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #de原创 2020-08-01 21:16:16 · 258 阅读 · 0 评论 -
BZOJ3509-FFT,分块
BZOJ3509 题目描述 给定一个长度为NNN的数组A[]A[]A[],求有多少对i,j,k(1<=i<j<k<=Ni, j, k(1<=i< j< k<=Ni,j,k(1<=i<j<k<=N满足A[k]−A[j]=A[j]−A[i]A[k]-A[j]=A[j]-A[i]A[k]−A[j]=A[j]−A[i]。 题解 代码 O(n2logn)O(n^2logn)O(n2logn) #include<bits/stdc++.h&g原创 2020-08-01 21:08:18 · 290 阅读 · 0 评论 -
P4199-FFT,manacher
P4199 题目描述 题解 代码 #include<bits/stdc++.h> #define ll long long #define LL unsigned long long #define M 2000009 using namespace std; int read(){ int f=1,re=0;char ch; for(ch=getchar();!isdigit(ch)&&ch!='-';ch=getchar()); if(ch=='-'){f=-1,ch原创 2020-08-01 20:51:29 · 118 阅读 · 0 评论 -
P4721-分治FFT,生成函数
P4721 题目描述 题解 代码 生成函数O(nlogn)O(nlogn)O(nlogn) 分治FFTO(nlog2n)O(nlog^2n)O(nlog2n) #include<bits/stdc++.h> #define ll long long #define M 400009//要开4倍! using namespace std; int read(){ int f=1,re=0;char ch; for(ch=getchar();!isdigit(ch)&&ch!原创 2020-08-01 20:24:38 · 219 阅读 · 0 评论 -
P4173 残缺的字符串(单模式字符串匹配FFT)
P4173 题目描述 题解 代码 #include<cmath> #include<cstdio> #include<climits> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> using namespace std; int read(){ int f=1,re=0;char ch; for(ch=getcha原创 2020-07-31 21:36:23 · 170 阅读 · 0 评论 -
P3723 礼物(FFT)
P3723 礼物 题目描述 题解 代码 #include <cmath> #include <cstdio> #include <climits> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #define ll long long using namespace std; const int M原创 2020-07-31 21:09:00 · 144 阅读 · 0 评论 -
P3338-力(FFT)
P3338 力 题目描述 题解 代码 #include <cmath> #include <cstdio> #include <climits> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> using namespace std; const int M=4e5+9; const double p原创 2020-07-31 20:23:17 · 144 阅读 · 0 评论 -
多项式指数函数(exp)
多项式指数函数(exp) 已知A(x)A(x)A(x),求使得B(x)≡eA(x)(modxn)B(x)\equiv{e^{A(x)}}\pmod{x^n}B(x)≡eA(x)(modxn)的B(x)B(x)B(x) 前置知识:牛顿迭代(咕咕咕) 观察本题,由于 B(x)≡eA(x)(modxn)lnB(x)−A(x)≡0(modxn)令G(B(x))≡lnB(x)−A(x)(modxn) B(x)\equiv{e^{A(x)}}\pmod{x^n}\\ \ln B(x)-A(x)\equiv0\pmod原创 2020-10-24 16:44:04 · 1454 阅读 · 0 评论 -
多项式快速幂
多项式快速幂 已知A(x)A(x)A(x),求使得B(x)≡A(x)k(modxn)B(x)\equiv{A(x)^k}\pmod{x^n}B(x)≡A(x)k(modxn) 两边先取对数(换底公式),再exp回来 lnB(x)≡klnA(x)(modxn)B(x)=eklnA(x)(modxn) \ln B(x)\equiv{k\ln A(x)}\pmod{x^n}\\ B(x)=e^{k\ln A(x)}\pmod{x^n} lnB(x)≡klnA(x)(modxn)B(x)=eklnA(x)(m原创 2020-07-30 20:55:13 · 192 阅读 · 0 评论 -
多项式对数函数(ln)
多项式对数函数(ln) 已知A(x)A(x)A(x),求使得B(x)=lnA(x)B(x)=\ln A(x)B(x)=lnA(x)的B(x)B(x)B(x) 考虑先求导,后积分 B′(x)=A′(x)A(x)B(x)=∫A′(x)A(x)dx B'(x)=\frac{A'(x)}{A(x)}\\ B(x)=\int\frac{A'(x)}{A(x)}dx B′(x)=A(x)A′(x)B(x)=∫A(x)A′(x)dx 附上求导和积分的公式 A′(x)=∑(i+1)aixi∫A(x)dx=∑ai−1i原创 2020-07-30 20:42:09 · 751 阅读 · 0 评论 -
多项式开根
多项式开根 已知A(x)A(x)A(x),求使得B(x)2≡A(x)(modxn)B(x)^2\equiv{A(x)\pmod{x^n}}B(x)2≡A(x)(modxn)的B(x)B(x)B(x) 类似求逆,考虑倍增。 假设当前已知B′(x)2≡A(x)(modxn2)B'(x)^2\equiv{A(x)}\pmod{x^{\frac{n}{2}}}B′(x)2≡A(x)(modx2n) (B′(x)2−A(x))2≡0(modxn)B′(x)4−2B′(x)2A(x)+A(x)2≡0(modxn)B′原创 2020-07-30 20:28:37 · 330 阅读 · 1 评论 -
多项式除法
多项式除法(取模) 已知次数为nnn的A(x)A(x)A(x),次数为mmm的B(x)B(x)B(x),求使得A(x)=B(x)C(x)+D(x)A(x)=B(x)C(x)+D(x)A(x)=B(x)C(x)+D(x)的C(x),D(x)C(x),D(x)C(x),D(x) 由题C(x)C(x)C(x)的次数为n−mn-mn−m,D(x)D(x)D(x)的次数为m−1m-1m−1 考虑将系数颠倒过来。 记AR(x)=xnA(1x)A^R(x)=x^nA(\frac{1}{x})AR(x)=xnA(x1)原创 2020-07-30 20:12:30 · 576 阅读 · 0 评论 -
多项式求逆
多项式求逆 板子 P4238 已知A(x)A(x)A(x),求使得A(x)B(x)≡1(modxn)A(x)B(x)\equiv 1 \pmod{x^n}A(x)B(x)≡1(modxn)的B(x)B(x)B(x) 考虑倍增。 假设当前已得到B′(x)B'(x)B′(x),满足A(x)B′(x)≡1(modxn)A(x)B'(x)\equiv 1 \pmod{x^n}A(x)B′(x)≡1(modxn) A(x)B′(x)−1≡0(modxn2)(A(x)B′(x)−1)2≡0(mod2n)A(x)2B′(原创 2020-07-30 19:52:53 · 140 阅读 · 0 评论 -
多项式全家桶
#include<bits/stdc++.h> #define ll long long using namespace std; const int g=3; const int mod=998244353; const int M=2100009; char s; int read(){ int f=1,re=0;char ch; for(ch=getchar();!isdigit(ch)&&ch!='-';ch=getchar()); if(ch=='-'){f=原创 2020-07-30 19:36:50 · 125 阅读 · 0 评论