日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多项式孤儿桶

發(fā)布時間:2023/12/2 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多项式孤儿桶 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

巨佬制作人們大家好,我是練習(xí)多項(xiàng)式兩周半的個人練習(xí)生lgl。這里總結(jié)一下多項(xiàng)式基本操作。


?

1.多項(xiàng)式加、減、輸出

不說了。

時間復(fù)雜度$O(n)$。

2.多項(xiàng)式取模

已知多項(xiàng)式$F(x)$,求它對$x^n$取模。

人話:把$n$次及以上的系數(shù)清零。

時間復(fù)雜度$O(n)$。

3.多項(xiàng)式乘法/卷積

洛谷傳送門。

(1)$FFT$

依靠復(fù)平面上瞎轉(zhuǎn)以及強(qiáng)大的$double$。

#include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 2000050 #define ll long long const double Pi = acos(-1.0); template<typename T> inline void read(T&x) {T f=1,c=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=10*c+ch-'0';ch=getchar();}x = f*c; } struct cp {double x,y;cp(){}cp(double x,double y):x(x),y(y){}cp operator + (const cp&a)const{return cp(x+a.x,y+a.y);}cp operator - (const cp&a)const{return cp(x-a.x,y-a.y);}cp operator * (const cp&a)const{return cp(x*a.x-y*a.y,x*a.y+y*a.x);} }; int n,m,mx,to[2*N],lim=1,L; void fft(cp *a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){cp w0(cos(Pi/i),k*sin(Pi/i));for(int j=0;j<len;j+=(i<<1)){cp w(1,0);for(int o=0;o<i;o++,w=w*w0){cp w1 = a[j+o],w2 = a[j+o+i]*w;a[j+o] = w1+w2;a[j+o+i] = w1-w2;}}} } cp a[2*N],b[2*N],c[2*N]; int main() {read(n),read(m);mx = max(n,m);for(int i=0;i<=n;i++)read(a[i].x);for(int i=0;i<=m;i++)read(b[i].x);while(lim<=2*mx)lim<<=1,L++;for(int i=1;i<lim;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(L-1)));fft(a,lim,1),fft(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i];fft(c,lim,-1);for(int i=0;i<=n+m;i++)printf("%lld ",(ll)(c[i].x/lim+0.5));puts("");return 0; } FFT

注意那個重載運(yùn)算符,寫在里面是可以連加連乘的。

(2)$NTT$

需要一個好模數(shù),還要依靠原根的優(yōu)秀性質(zhì)。

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 2000050 #define ll long long #define MOD 998244353 template<typename T> inline void read(T&x) {T f=1,c=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=10*c+ch-'0';ch=getchar();}x = f*c; } ll fastpow(ll x,int y) {ll ret = 1;while(y){if(y&1)ret=ret*x%MOD;x=x*x%MOD;y>>=1;}return ret; } int n,m,mx,to[2*N],lim=1,l; void ntt(ll *a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){ll w0 = fastpow(3,(MOD-1)/(i<<1));for(int j=0;j<len;j+=(i<<1)){ll w = 1;for(int o=0;o<i;o++,w=w*w0%MOD){ll w1 = a[j+o],w2 = a[j+o+i]*w%MOD;a[j+o] = (w1+w2)%MOD;a[j+o+i] = ((w1-w2)%MOD+MOD)%MOD;}}}if(k==-1)for(int i=1;i<(lim>>1);i++)swap(c[i],c[lim-i]); } ll a[2*N],b[2*N],c[2*N]; int main() {read(n),read(m);mx = max(n,m);for(int i=0;i<=n;i++)read(a[i]);for(int i=0;i<=m;i++)read(b[i]);while(lim<=2*mx)lim<<=1,l++;for(int i=1;i<lim;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(l-1)));ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD;ntt(c,lim,-1);ll inv = fastpow(lim,MOD-2);for(int i=0;i<lim;i++)c[i]=c[i]*inv%MOD;for(int i=0;i<=n+m;i++)printf("%lld ",c[i]);puts("");return 0; } NTT

自測不開$O2$時$NTT$較快,開了$O2$之后$FFT$更快。

(3)任意模數(shù)$NTT$

我的版本是用$FFT$+$long\;double$把系數(shù)拆成$x/M$和$x\;mod\;M$,之后再合并。

#include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define double long double typedef long long ll; const int N = 500050; const double Pi = acos(-1.0); template<typename T> inline void read(T&x) {T f = 1,c = 0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();}x = f*c; } int n,m,MOD; struct cp {double x,y;cp(){}cp(double x,double y):x(x),y(y){}cp operator + (const cp&a)const{return cp(x+a.x,y+a.y);}cp operator - (const cp&a)const{return cp(x-a.x,y-a.y);}cp operator * (const cp&a)const{return cp(x*a.x-y*a.y,x*a.y+y*a.x);} }; int to[N],lim,L; void init() {lim = 1,L = 0;while(lim<=2*max(n,m))lim<<=1,L++;for(int i=1;i<lim;i++)to[i] = ((to[i>>1]>>1)|((i&1)<<(L-1))); } ll A[N],B[N],C[N]; void fft(cp*a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){cp w0(cos(Pi/i),k*sin(Pi/i));for(int j=0;j<len;j+=(i<<1)){cp w(1,0);for(int o=0;o<i;o++,w=w*w0){cp w1 = a[j+o],w2 = a[j+o+i]*w;a[j+o] = w1+w2;a[j+o+i] = w1-w2;}}}if(k==-1)for(int i=0;i<len;i++)a[i].x/=len; } cp a[N],b[N],c[N],d[N],e[N],f[N],g[N],h[N]; void mtt() {int M = 32768;for(int i=0;i<max(n,m);i++){a[i].x = A[i]/M,b[i].x = A[i]%M;c[i].x = B[i]/M,d[i].x = B[i]%M;}fft(a,lim,1),fft(b,lim,1),fft(c,lim,1),fft(d,lim,1);for(int i=0;i<lim;i++){e[i] = a[i]*c[i],f[i] = a[i]*d[i];g[i] = b[i]*c[i],h[i] = b[i]*d[i];}fft(e,lim,-1),fft(f,lim,-1),fft(g,lim,-1),fft(h,lim,-1);for(int i=0;i<lim;i++)C[i] = (((ll)(e[i].x+0.1))%MOD*M%MOD*M%MOD+((ll)(f[i].x+0.1))%MOD*M%MOD+((ll)(g[i].x+0.1))%MOD*M%MOD+((ll)(h[i].x+0.1))%MOD)%MOD; } int main() {read(n),read(m),read(MOD);n++,m++;init();for(int i=0;i<n;i++)read(A[i]);for(int i=0;i<m;i++)read(B[i]);mtt();for(int i=0;i<n+m-1;i++)printf("%lld ",C[i]);puts("");return 0; } MTT

時間復(fù)雜度$O(nlogn)$。大常數(shù)。

(4)更強(qiáng)的$MTT$

參見myy論文。

void mtt(int*F,int*G,int*H,int len) {get_lim(len<<1);for(register int i=0;i<lim;++i)a[i]=b[i]=cp(0,0);for(register int i=0;i<len;++i)a[i]=cp(F[i]&(M-1),F[i]>>15),b[i]=cp(G[i]&(M-1),G[i]>>15);fft(a,lim,1),fft(b,lim,1);for(register int i=0;i<lim;++i){int j = (lim-i)&(lim-1);c[j]=cp(0.5*(a[i].x+a[j].x),0.5*(a[i].y-a[j].y))*b[i];d[j]=cp(0.5*(a[i].y+a[j].y),0.5*(a[j].x-a[i].x))*b[i];}fft(c,lim,1),fft(d,lim,1);for(register int i=0;i<lim;++i){int kaa = (ll)(c[i].x/lim+0.5)%MOD;int kab = (ll)(c[i].y/lim+0.5)%MOD;int kba = (ll)(d[i].x/lim+0.5)%MOD;int kbb = (ll)(d[i].y/lim+0.5)%MOD;Mod(H[i] = ((ll)kaa+((ll)(kab+kba)<<15)%MOD+((ll)kbb<<30)%MOD)%MOD+MOD);} } 更強(qiáng)的MTT

4.多項(xiàng)式求導(dǎo)、積分

不會求導(dǎo)積分建議出門左轉(zhuǎn)高中數(shù)學(xué)教材。

void down(ll*a,int len) {for(int i=0;i+1<len;i++)a[i]=a[i+1]*(i+1)%MOD;a[len-1]=0; } void up(ll*a,int len) {for(int i=len-1;i>0;i--)a[i]=a[i-1]*inv(i)%MOD;a[0] = 0; } 求導(dǎo)積分

求導(dǎo)時間復(fù)雜度$O(n)$,積分$O(n)$或者$O(nlog)$。

5.多項(xiàng)式求逆

洛谷傳送門。

洛谷加強(qiáng)傳送門。

已知多項(xiàng)式$F(x)$,求$G(x)$滿足$$F(x)*G(x)≡1\;(mod\;x^n)$$

一個多項(xiàng)式對應(yīng)的逆是一個唯一的無窮極的多項(xiàng)式,我們要求的是它的前$n$項(xiàng)。

一般都是倍增法求解。

我們現(xiàn)在知道$$F(x)*G0(x)≡1\;(mod\;x^{\frac{n}{2}})$$

移項(xiàng):$$F(x)*G0(x)-1≡0\;(mod\;x^{\frac{n}{2}})$$

搞模的次數(shù),整體平方:$$(F(x)*G0(x)-1)^2≡0\;(mod\;x^n)$$

打開:$$F^2*G0^2-2*F*G0+1≡0\;(mod\;x^n)$$

兩邊乘上$G$,得$$F*G0^2-2*G0+G≡0\;(mod\;x^n)$$

再移項(xiàng):$$G≡2*G0-F*G0^2$$

這個式子減號左邊是$\frac{n}{2}$次的,減號右邊是$n$次的。

?注意右邊乘的話先$G*G$再乘$F$,注意長度。

void get_inv(int len,int*F,int*G) {if(len==1){G[0]=fastpow(F[0],MOD-2);return ;}get_inv(len>>1,F,G),mtt(G,G,T,len>>1),mtt(T,F,H,len);for(register int i=0;i<len;++i)Mod(G[i]=G[i]*2%MOD-H[i]+MOD); } 多項(xiàng)式求逆

邊界條件$G_0= \frac{1}{F_0}$,時間復(fù)雜度$O(nlogn)$。

6.多項(xiàng)式整除、取余

洛谷傳送門。

給出$F(x),G(x)$,其中$F(x)$是$n$次的,$G(x)$是$m$次的。

求$$F(x)=Q(x)*G(x)+R(x)$$

$R(x)$次數(shù)$m-1$,$Q(x)$次數(shù)$n-m$。

神奇變換:$$F(\frac{1}{x})=Q(\frac{1}{x})*G(\frac{1}{x})+R(\frac{1}{x})$$

然后同乘$x^n$,發(fā)現(xiàn)$$F(\frac{1}{x})*x^n=Q(\frac{1}{x})*x^{n-m}*G(\frac{1}{x})*x^{m}+R(\frac{1}{x})*x^n$$

$$F_R(x)=Q_R(x)*G_R(x)+R_R(x)$$

其中$F_R(x)$表示將$F$系數(shù)反轉(zhuǎn)得到的多項(xiàng)式,$Q_R(x)$、$G_R(x)$同理。

但是我們發(fā)現(xiàn)$R(x)$是$m-1$次的,乘完之后后面會有一堆0。所以$$F_R(x)≡Q_R(x)*G_R(x)\;(mod\;x^{n-m})$$

反過來求逆就好了。

把$Q(x)$求出來之后求$R(x)$就是多項(xiàng)式乘法、多項(xiàng)式減法。

時間復(fù)雜度$O(nlogn)$。

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 600050; const int MOD = 998244353; template<typename T> inline void read(T&x) {T f = 1,c = 0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();}x = f*c; } ll fastpow(ll x,int y) {ll ret = 1;while(y){if(y&1)ret=ret*x%MOD;x=x*x%MOD;y>>=1;}return ret; } int n,m,to[N],lim,L; void ntt(ll*a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){ll w0 = fastpow(3,(MOD-1)/(i<<1));for(int j=0;j<len;j+=(i<<1)){ll w = 1;for(int o=0;o<i;o++,w=w*w0%MOD){ll w1 = a[j+o],w2 = a[j+o+i]*w%MOD;a[j+o] = (w1+w2)%MOD;a[j+o+i] = (w1-w2+MOD)%MOD;}}}if(k==-1){for(int i=1;i<len>>1;i++)swap(a[i],a[len-i]);ll inv = fastpow(len,MOD-2);for(int i=0;i<len;i++)a[i]=a[i]*inv%MOD;} } ll f[N],g[N],a[N],b[N],c[N]; void sol(int len) {if(len==1){g[0] = fastpow(f[0],MOD-2);return ;}int mid = (len+1)>>1;sol(mid);lim = 1,L = 0;while(lim<=2*len)lim<<=1,L++;for(int i=1;i<lim;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(L-1)));for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=f[i];for(int i=0;i<mid;i++)b[i]=g[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<len;i++)g[i]=(2*g[i]%MOD-c[i]+MOD)%MOD; } void mul(ll*A,ll*B,int len) {lim = 1,L = 0;while(lim<=2*len)lim<<=1,L++;for(int i=1;i<lim;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(L-1)));for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=A[i],b[i]=B[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD;ntt(c,lim,-1); } ll F[N],G[N],H[N],R[N],F0[N],G0[N]; int main() {read(n),read(m),n++,m++;for(int i=0;i<n;i++)read(F[i]);for(int i=0;i<m;i++)read(G[i]);memcpy(F0,F,sizeof(F0));memcpy(G0,G,sizeof(G0));reverse(F,F+n);reverse(G,G+m);for(int i=0;i<m;i++)f[i]=G[i];sol(n-m+1);mul(F,g,n-m+1);for(int i=0;i<n-m+1;i++)H[i]=c[i];reverse(H,H+n-m+1);mul(H,G0,n);for(int i=0;i<n-m+1;i++)printf("%lld ",H[i]);puts("");for(int i=0;i<m-1;i++)printf("%lld ",(F0[i]-c[i]+MOD)%MOD);puts("");return 0; } 多項(xiàng)式除法

7.多項(xiàng)式開根

洛谷傳送門。

這個黑科技是小朋友與二叉樹之后大佬們搞出來的。

已知$F(x)$,求$G(x)$滿足$$G(x)*G(x)≡F(x)\;(mod\;x^n)$$

和多項(xiàng)式的逆一樣,一個多項(xiàng)式的根是惟一的。

依然考慮倍增求解。

假設(shè)我們已知$$H(x)*H(x)≡F(x)\;(mod\;x^{\frac{n}{2}})$$,要求$G(x)$。

常規(guī)移項(xiàng)平方:$$(H^2(x)-F(x))^2≡0\;(mod\;x^n)$$

然后是一個神奇操作:$$(H^2(x)+F(x))^2≡4F(x)H^2(x)\;(mod\;x^n)$$

然后再移項(xiàng):$$\frac{(H^2(x)+F(x))^2}{4H^2(x)} ≡ F(x) \; (mod\;x^n)$$

然后驚奇的發(fā)現(xiàn)左邊是平方形式,所以$$G(x) ≡ \frac{H^2(x)+F(x)}{2H(x)} \; (mod\;x^n)$$

遞歸的時候套一個多項(xiàng)式求逆即可(反正才四行),注意清數(shù)組不然可能會死

時間復(fù)雜度$T(n)=T(n/2)+O(nlogn)=O(nlogn)$,大常數(shù)。

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 600050; const int MOD = 998244353; template<typename T> inline void read(T&x) {T f = 1,c = 0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();}x = f*c; } ll fastpow(ll x,int y) {ll ret = 1;while(y){if(y&1)ret=ret*x%MOD;x=x*x%MOD;y>>=1;}return ret; } int to[N],lim,L; void ntt(ll*a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){ll w0 = fastpow(3,(MOD-1)/(i<<1));for(int j=0;j<len;j+=(i<<1)){ll w = 1;for(int o=0;o<i;o++,w=w*w0%MOD){ll w1 = a[j+o],w2 = a[j+o+i]*w%MOD;a[j+o] = (w1+w2)%MOD;a[j+o+i] = (w1-w2+MOD)%MOD;}}}if(k==-1){for(int i=1;i<len>>1;i++)swap(a[i],a[len-i]);ll inv = fastpow(len,MOD-2);for(int i=0;i<len;i++)a[i]=a[i]*inv%MOD;} } int n; ll a[N],b[N],c[N]; void get_lim(int len) {lim = 1,L = 0;while(lim<=len)lim<<=1,L++;for(int i=1;i<lim;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(L-1))); } void mul(ll*A,int Alen,ll*B,int Blen) {get_lim(Alen+Blen);for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<Alen;i++)a[i]=A[i];for(int i=0;i<Blen;i++)b[i]=B[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD;ntt(c,lim,-1); } ll F[N],G[N],H[N]; void get_inv(int len) {if(len==1){H[0] = fastpow(G[0],MOD-2);return ;}int mid = (len+1)>>1;get_inv(mid);get_lim(len<<1);for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=G[i];for(int i=0;i<mid;i++)b[i]=H[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<len;i++)H[i]=(2*H[i]%MOD-c[i]+MOD)%MOD; } void get_sqrt(int len) {if(len==1){G[0] = 1;return ;}int mid = (len+1)>>1;get_sqrt(mid);for(int i=0;i<len;i++)H[i]=0;get_inv(len);mul(G,mid,G,mid);for(int i=0;i<len;i++)G[i]=(c[i]+F[i])%MOD;mul(G,len,H,len);for(int i=0;i<len;i++)G[i]=c[i]*((MOD+1)/2)%MOD; } int main() {read(n);for(int i=0;i<n;i++)read(F[i]);get_sqrt(n);for(int i=0;i<n;i++)printf("%lld ",G[i]);puts("");return 0; } 多項(xiàng)式開根

8.多項(xiàng)式對數(shù)函數(shù)(ln)

洛谷傳送門。

已知$F(x)$,求$$G(x)≡ln(F(x))\;(mod\;x^n)$$

直接求導(dǎo)即可:$$G'(x)≡F'(x)*\frac{1}{F(x)}$$

所以說求導(dǎo)求逆積分即可。

時間復(fù)雜度$O(nlogn)$。

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 600050; const int MOD = 998244353; template<typename T> inline void read(T&x) {T f = 1,c = 0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();}x = f*c; } ll fastpow(ll x,int y) {ll ret = 1;while(y){if(y&1)ret=ret*x%MOD;x=x*x%MOD;y>>=1;}return ret; } ll inv(ll x){return fastpow(x,MOD-2);} int to[N],lim,L; void down(ll*a,int len) {for(int i=0;i+1<len;i++)a[i]=a[i+1]*(i+1)%MOD;a[len-1]=0; } void up(ll*a,int len) {for(int i=len-1;i>0;i--)a[i]=a[i-1]*inv(i)%MOD;a[0] = 0; } void ntt(ll*a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){ll w0 = fastpow(3,(MOD-1)/(i<<1));for(int j=0;j<len;j+=(i<<1)){ll w = 1;for(int o=0;o<i;o++,w=w*w0%MOD){ll w1 = a[j+o],w2 = a[j+o+i]*w%MOD;a[j+o] = (w1+w2)%MOD;a[j+o+i] = (w1-w2+MOD)%MOD;}}}if(k==-1){for(int i=1;i<len>>1;i++)swap(a[i],a[len-i]);ll inv = fastpow(len,MOD-2);for(int i=0;i<len;i++)a[i]=a[i]*inv%MOD;} } int n; ll a[N],b[N],c[N]; ll F[N],G[N]; void get_inv(int len) {if(len==1){G[0] = inv(F[0]);return ;}int mid = (len+1)>>1;get_inv(mid);lim = 1,L = 0;while(lim<2*len)lim<<=1,L++;for(int i=1;i<lim;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(L-1)));for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=F[i];for(int i=0;i<mid;i++)b[i]=G[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<len;i++)G[i]=(2*G[i]%MOD-c[i]+MOD)%MOD; } int main() {read(n);for(int i=0;i<n;i++)read(F[i]);get_inv(n);down(F,n);lim = 1,L = 0;while(lim<=2*n)lim<<=1,L++;for(int i=1;i<lim;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(L-1)));for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<n;i++)a[i]=F[i];for(int i=0;i<n;i++)b[i]=G[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<n;i++)F[i]=c[i];up(F,n);for(int i=0;i<n;i++)printf("%lld ",F[i]);puts("");return 0; } 多項(xiàng)式ln

9.多項(xiàng)式指數(shù)函數(shù)(exp)

洛谷傳送門。

已知$F(x)$,求$$G(x)≡e^{F(x)}\;(mod\;x^n)$$

附加牛頓迭代:$x=x'-\frac{f(x')}{f(x')'}$

牛迭原理?一張圖:

回到問題,依然倍增求解,假設(shè)已知$$H(x)≡e^{F(x)}\;(mod\;x^{\frac{n}{2}})$$

先對式子取ln再移項(xiàng):$$ln(H(x))-F(x)≡0\;(mod\;x^{\frac{n}{2}})$$

然后呢……

我們把它當(dāng)做$ln(x)-k=0$,問題轉(zhuǎn)化為式子求零點(diǎn),那么把牛迭套進(jìn)去有這樣一個式子:$$G(x)≡H(x)-\frac{ln(H(x))-F(x)}{\frac{1}{H(x)}}\;(mod\;x^n)$$

分?jǐn)?shù)太難看了,變一下:$$G(x)≡H(x)*(1-ln(H(x))+F(x))\;(mod\;x^n)$$

左轉(zhuǎn)把多項(xiàng)式ln板子帶過來即可。

復(fù)雜度?$T(n)=T(n/2)+O(nlogn)=O(nlogn)$?

常數(shù)?卡死人。

我的$ntt$跑$1e6$的數(shù)據(jù):

我的$exp$跑$1e5$的數(shù)據(jù):

卡常好啊

// luogu-judger-enable-o2 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef unsigned long long ll; const int N = 600050; const int MOD = 998244353; template<typename T> inline void read(T&x) {T f = 1,c = 0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();}x = f*c; } ll fastpow(ll x,int y) {ll ret = 1;while(y){if(y&1)ret=ret*x%MOD;x=x*x%MOD;y>>=1;}return ret; } int to[N],lim,L; ll W[N],Inv; void Mod(ll&x){if(x>=MOD)x-=MOD;} void ntt(ll*a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){ll w0 = W[i];for(int j=0;j<len;j+=(i<<1)){ll w = 1;for(int o=0;o<i;o++,w=w*w0%MOD){ll w1 = a[j+o],w2 = a[j+o+i]*w%MOD;Mod(a[j+o] = w1+w2);Mod(a[j+o+i] = w1-w2+MOD);}}}if(k==-1){for(int i=1;i<len>>1;i++)swap(a[i],a[len-i]);for(int i=0;i<len;i++)a[i]=a[i]*Inv%MOD;} } ll a[N],b[N],c[N]; void get_lim(int len) {lim = 1,L = 0;while(lim<=len)lim<<=1,L++;for(int i=1;i<lim;i++)to[i]=((to[i>>1])>>1|((i&1)<<(L-1)));for(int i=1;i<lim;i<<=1)W[i]=fastpow(3,(MOD-1)/(i<<1));Inv = fastpow(lim,MOD-2); } int n; ll A[N],F[N],G[N],H[N];//F,lnF,1/G void get_inv(int len) {if(len==1){H[0] = fastpow(G[0],MOD-2);return ;}int mid = (len+1)>>1;get_inv(mid);get_lim(len<<1);for(int i=0;i<=lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=G[i];for(int i=0;i<mid;i++)b[i]=H[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<len;i++)Mod(H[i]=2*H[i]%MOD-c[i]+MOD); } void down(ll*a,int len) {for(int i=0;i<len;i++)a[i]=a[i+1]*(i+1)%MOD;a[len-1]=0; } void up(ll*a,int len) {for(int i=len-1;i;i--)a[i]=a[i-1]*fastpow(i,MOD-2)%MOD;a[0] = 0; } void get_ln(int len) {for(int i=0;i<len;i++)G[i]=F[i],H[i]=0;get_inv(len);down(G,len);get_lim(len<<1);for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=G[i],b[i]=H[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<len;i++)G[i]=c[i];up(G,len); } void get_exp(int len) {if(len==1){F[0] = 1;return ;}int mid = (len+1)>>1;get_exp(mid);for(int i=0;i<len;i++)G[i]=0;get_ln(len);get_lim(len<<1);for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=F[i],b[i]=(A[i]-G[i]+MOD)%MOD;Mod(++b[0]);ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=a[i]*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<len;i++)F[i]=c[i]; } int main() {read(n);for(int i=0;i<n;i++)read(A[i]);get_exp(n);for(int i=0;i<n;i++)printf("%llu ",F[i]);puts("");return 0; } 多項(xiàng)式exp

10.多項(xiàng)式快速冪

洛谷傳送門。

已知$A(x)$,求$B(x)≡A^k(x)\;(mod\;x^n)$。

直接取$ln$,乘完再$exp$回去……

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 500050; const int MOD = 998244353; template<typename T> inline void read(T&x) {T f = 1,c = 0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();}x = f*c; } template<typename T> inline void Mod(T&x){if(x>=MOD)x-=MOD;} int modread() {int ret = 0;char ch=getchar();while(ch<'0'||ch>'9'){ch=getchar();}while(ch>='0'&&ch<='9'){Mod(ret=10ll*ret%MOD+ch-'0');ch=getchar();}return ret; } int fastpow(int x,int y) {int ret = 1;while(y){if(y&1)ret=1ll*ret*x%MOD;x=1ll*x*x%MOD;y>>=1;}return ret; } int inv(int x){return fastpow(x,MOD-2);} int n,k,to[N],lim,L,LL[N],ny[N],jc[N],jny[N]; int init(int n) {lim = LL[2] = 1;while(lim<=n)lim<<=1,LL[lim<<1]=LL[lim]+1;ny[1] = jc[0] = jc[1] = jny[0] = jny[1] = 1;for(int i=2;i<=lim;i++){ny[i] = 1ll*(MOD-MOD/i)*ny[MOD%i]%MOD;jc[i] = 1ll*jc[i-1]*i%MOD;jny[i] = 1ll*jny[i-1]*ny[i]%MOD;}return lim; } void get_lim(int len) {lim = len,L = LL[len];for(int i=1;i<len;i++)to[i]=((to[i>>1]>>1)|((i&1)<<(L-1))); } void ntt(int*a,int len,int k) {for(int i=0;i<len;i++)if(i<to[i])swap(a[i],a[to[i]]);for(int i=1;i<len;i<<=1){int w0 = fastpow(3,(MOD-1)/(i<<1));for(int j=0;j<len;j+=(i<<1)){int w = 1;for(int o=0;o<i;o++,w=1ll*w*w0%MOD){int w1 = a[j+o],w2 = 1ll*a[j+o+i]*w%MOD;Mod(a[j+o] = w1+w2);Mod(a[j+o+i] = w1+MOD-w2);}}}if(k==-1){for(int i=1;i<len>>1;i++)swap(a[i],a[len-i]);int Inv = inv(len);for(int i=0;i<len;i++)a[i]=1ll*a[i]*Inv%MOD;} } int a[N],b[N],c[N],I[N],T[N],Ln[N]; void mul(int*F,int*G,int len) {get_lim(len<<1);for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=F[i],b[i]=G[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=1ll*a[i]*b[i]%MOD;ntt(c,lim,-1); } void get_d(int*F,int*G,int len) {for(int i=1;i<len;i++)G[i-1]=1ll*F[i]*i%MOD;G[len-1]=0; } void get_j(int*F,int*G,int len) {for(int i=1;i<len;i++)G[i]=1ll*F[i-1]*ny[i]%MOD;G[0] = 0; } void get_inv(int*F,int*G,int len) {if(len==1){G[0]=inv(F[0]);return ;}get_inv(F,G,len>>1);get_lim(len<<1);for(int i=0;i<lim;i++)a[i]=b[i]=0;for(int i=0;i<len;i++)a[i]=F[i];for(int i=0;i<len>>1;i++)b[i]=G[i];ntt(a,lim,1),ntt(b,lim,1);for(int i=0;i<lim;i++)c[i]=1ll*a[i]*b[i]%MOD*b[i]%MOD;ntt(c,lim,-1);for(int i=0;i<len;i++)G[i]=(2ll*G[i]%MOD+MOD-c[i])%MOD; } void get_ln(int*F,int*G,int len) {for(int i=0;i<len;i++)I[i]=0;get_inv(F,I,len),get_d(F,T,len);mul(I,T,len);for(int i=0;i<len;i++)T[i]=c[i];get_j(T,G,len); } void get_exp(int*F,int*G,int len) {if(len==1){G[0]=1;return ;}get_exp(F,G,len>>1);get_ln(G,Ln,len);for(int i=0;i<len;i++)Mod(Ln[i]=F[i]+MOD-Ln[i]);Mod(++Ln[0]);mul(Ln,G,len);for(int i=0;i<len;i++)G[i]=c[i]; } void fastpow(int*F,int*G,int len,int k) {get_ln(F,F,len);for(int i=0;i<len;i++)F[i]=1ll*F[i]*k%MOD;get_exp(F,G,len); } int F[N],G[N]; int main() { // freopen("tt.in","r",stdin);read(n),k=modread();for(int i=0;i<n;i++)read(F[i]);int mx = init(n);fastpow(F,G,mx,k);for(int i=0;i<n;i++)printf("%d ",G[i]);puts("");return 0; } 多項(xiàng)式快速冪

?

大概就這些了吧。

(是時候總結(jié)一下常用卡常技巧了)

轉(zhuǎn)載于:https://www.cnblogs.com/LiGuanlin1124/p/11024466.html

總結(jié)

以上是生活随笔為你收集整理的多项式孤儿桶的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧美日本中文字幕 | 91视频91蝌蚪 | 伊人超碰在线 | 天天天天天天天天操 | 国产精品av免费 | 在线视频观看亚洲 | 一区二区三区四区五区六区 | 国产精品第一 | av品善网| 色噜噜色噜噜 | 看片的网址 | 夜夜看av | 色网站在线看 | 国产露脸91国语对白 | 一区二区三区中文字幕在线观看 | 国产在线2020 | 久久亚洲欧美 | 五月婷婷一级片 | 国产精品久久久久国产精品日日 | 亚洲色图 校园春色 | 午夜精品一区二区三区在线播放 | 久久精品一区二区三区视频 | 超碰97久久 | 成+人+色综合 | 精品无人国产偷自产在线 | 久久久久久免费毛片精品 | 国产99re| 午夜婷婷在线播放 | 日日爽| 亚洲日本黄色 | 国产中文在线字幕 | 日本mv大片欧洲mv大片 | 亚洲经典在线 | 99中文字幕 | 亚洲欧美va | 91av在线播放视频 | 三三级黄色片之日韩 | 国产精品国产三级国产aⅴ入口 | www.五月天色 | 就要色综合| 91精品国自产在线观看欧美 | 免费看黄网站在线 | 99久久99精品 | 久久永久视频 | 日本中文字幕在线免费观看 | 天天操天天综合网 | 亚洲黄色高清 | 97超碰在线久草超碰在线观看 | 97视频在线免费观看 | 黄网站色成年免费观看 | 激情开心色 | 99热99re6国产在线播放 | 特黄特黄的视频 | a√资源在线 | 亚洲成av人电影 | 国产一区二区手机在线观看 | 精品成人久久 | 中文字幕精品一区 | 黄色av电影在线 | 欧美精品中文字幕亚洲专区 | 青青草视频精品 | 欧美analxxxx| 91日韩在线| 日韩免费观看一区二区 | 九九视频精品在线 | 五月天国产精品 | 黄色天堂在线观看 | 久久久久久久网站 | av蜜桃在线 | 精品一区精品二区 | 亚洲精品毛片一级91精品 | 久久久久久蜜av免费网站 | 欧美日韩视频在线观看一区二区 | 久久久免费观看完整版 | 日韩精品一区二 | 最近中文字幕久久 | 久久免费一级片 | 综合激情 | 久久久久免费精品视频 | 美女久久久久久久久久久 | 午夜av色 | 欧美人交a欧美精品 | 国产玖玖精品视频 | 亚洲国产精品99久久久久久久久 | 欧美色婷 | 精品久久1| 丁香 久久 综合 | 精品国产一区二区三区免费 | 欧美一区二区三区特黄 | 天天色天天艹 | 欧美日韩国产二区三区 | 国产高清中文字幕 | 日日干日日色 | 中文字幕在线观看亚洲 | 久久系列 | 欧美日韩午夜爽爽 | 亚洲综合丁香 | 天天操天天是 | 99精品视频网站 | 在线观看久久久久久 | 亚洲精品91天天久久人人 | 91精品对白一区国产伦 | 国语麻豆| 欧美日韩一区二区在线观看 | 91chinesexxx| 久射网| 久久免费毛片 | 正在播放 国产精品 | 91麻豆国产| 免费男女羞羞的视频网站中文字幕 | 国产免费区 | 国产激情电影综合在线看 | 免费中文字幕视频 | 久久视频网址 | 热久久精品在线 | 日韩欧美电影在线 | 色综合天天狠天天透天天伊人 | 麻豆精品在线视频 | 在线天堂中文在线资源网 | 成人午夜剧场在线观看 | 日韩免费视频 | 伊人官网 | 国产va饥渴难耐女保洁员在线观看 | 在线观看免费国产小视频 | 精品国偷自产在线 | 国产日韩欧美视频在线观看 | 亚洲情感电影大片 | 成人免费在线视频 | 欧美在线观看视频一区二区三区 | 精品成人网 | 日日综合 | 日韩精品视频免费看 | 色妞色视频一区二区三区四区 | 国产99在线 | 久久久精品欧美 | 免费国产一区二区 | av免费在线网 | 色五月激情五月 | 成人av电影免费在线观看 | 人人射av | 一区二区三区在线免费播放 | 麻豆你懂的 | www免费视频com━ | 久久久久久久看片 | 99九九99九九九视频精品 | 日日干视频 | 一区 在线 影院 | 欧美日韩精品在线视频 | 美女国内精品自产拍在线播放 | 欧美日韩精品在线视频 | 色婷婷狠狠操 | 日本久久久久久久久久 | 国产精品久久久久影院日本 | 久久视屏网 | 午夜黄色一级片 | 国产久视频| 免费三级黄色 | 国产又黄又硬又爽 | 欧美91精品久久久久国产性生爱 | 国产视频九色蝌蚪 | 国产中文在线播放 | 久久国产精品成人免费浪潮 | 亚洲年轻女教师毛茸茸 | 国产 日韩 在线 亚洲 字幕 中文 | 人人干在线 | 亚洲一区二区三区91 | 欧美激情精品久久久久久免费印度 | 日本特黄一级 | 精品无人国产偷自产在线 | 色婷婷亚洲精品 | 蜜臀久久99静品久久久久久 | 91精品国产成人观看 | 黄色影院在线观看 | 丁香花在线观看视频在线 | 欧美一区二区免费在线观看 | 一本一本久久a久久精品牛牛影视 | 麻豆免费视频 | 欧美成人999| 精品久久久久久久久久久久 | 91精品免费在线观看 | 五月天伊人网 | 免费在线观看av | 国产一区二三区好的 | 免费a现在观看 | 色视频一区 | 香蕉精品视频在线观看 | 日韩色综合 | 国产美腿白丝袜足在线av | 伊人色综合网 | 91福利影院在线观看 | 久久久久亚洲天堂 | 中文字幕在线观看免费观看 | 久久国产a | 超碰在线99| 99久久久精品 | 伊人影院得得 | 五月婷婷黄色网 | 久久精品久久99 | 五月激情婷婷丁香 | 国产成人福利在线观看 | 久久精品1区2区 | 日韩试看 | 国产精品区一区 | 日韩成人免费在线 | 久久久久久久久影视 | 黄色a在线观看 | 黄色软件视频大全免费下载 | 婷婷网址| www.国产在线视频 | 欧美精品久久久久久久免费 | 麻豆精品传媒视频 | 久久久精品免费观看 | 国产91学生粉嫩喷水 | 日韩视频一二三区 | 国产精品一区二区av日韩在线 | 午夜电影中文字幕 | 国产美女无遮挡永久免费 | 免费观看第二部31集 | 最新色视频 | 激情欧美一区二区三区免费看 | 国产精品视频免费看 | 色福利网 | 人人澡人 | 欧美色图东方 | 五月天精品视频 | 成人免费视频视频在线观看 免费 | 国产成人久久精品亚洲 | 国内综合精品午夜久久资源 | 亚洲一级电影视频 | 久久6精品 | 久久av免费 | 又黄又爽又无遮挡免费的网站 | 四虎成人在线 | 蜜臀久久99静品久久久久久 | 中文字幕有码在线播放 | 久久蜜臀一区二区三区av | 久久99精品波多结衣一区 | 麻豆传媒视频在线 | 天天射夜夜爽 | 午夜精品一区二区三区可下载 | 国产亚洲精品久久久久久久久久 | 久久 国产一区 | 西西人体4444www高清视频 | 国产欧美精品xxxx另类 | 色99之美女主播在线视频 | 亚洲国产午夜视频 | 国产视频精品免费 | 亚洲一区精品二人人爽久久 | 久久精品欧美日韩精品 | 成片免费观看视频 | 天天干天天干天天干天天干天天干天天干 | 免费在线观看成年人视频 | 99re久久资源最新地址 | av免费在线看网站 | 国产精品久久久久久久久免费 | 91精品视频在线观看免费 | 国产精品一区二区免费 | 综合久久网| 91精品秘密在线观看 | 九九99视频 | 亚洲成人av影片 | 免费在线观看成人 | 久久久久国产a免费观看rela | 成年人在线观看视频免费 | 中文字幕乱码电影 | 成人a在线观看高清电影 | 中文字幕大全 | 欧美日韩中文另类 | 久久国色夜色精品国产 | 日本中文字幕电影在线免费观看 | www.色午夜,com | 久久久久久久18 | 久久久久久久av麻豆果冻 | 久久99久久99精品免观看粉嫩 | 伊人天天| 在线小视频你懂得 | 夜夜躁日日躁狠狠久久av | 亚洲专区欧美 | 美女免费视频网站 | 中文字幕黄色网 | 99精品欧美一区二区三区黑人哦 | 9草在线| 一区二区中文字幕在线观看 | av专区在线| 日韩精品无码一区二区三区 | 九色自拍视频 | 狠狠色丁香久久婷婷综合_中 | 免费人做人爱www的视 | 热久久视久久精品18亚洲精品 | 欧美亚洲久久 | 成人中文字幕在线观看 | 国产专区一| 久久,天天综合 | 美女视频免费一区二区 | 成人一级视频在线观看 | 欧美性一级观看 | 久久91网| 99精品视频在线观看播放 | 91久久国产综合精品女同国语 | 久久精品99国产精品酒店日本 | 在线观看91久久久久久 | 九九九在线 | 久草视频在线免费播放 | 在线播放亚洲激情 | 亚洲乱码久久 | 一区二区精品在线观看 | 国产日韩欧美在线一区 | 国产一区在线免费 | 狠狠干免费 | 国产一区二区不卡视频 | 天堂av色婷婷一区二区三区 | 国产大片黄色 | 九九久久免费视频 | 欧美巨乳网 | 美女网站色免费 | 色婷婷在线视频 | 天天色天天色 | 欧美日韩高清国产 | 99久久精品国产亚洲 | 深爱婷婷久久综合 | 鲁一鲁影院 | 一级黄色片在线播放 | 国产91精品一区二区绿帽 | 色天天中文 | 欧美一级日韩免费不卡 | 亚洲精品女人 | 2022中文字幕在线观看 | 中文字幕av最新 | 国产直播av | 91九色porny蝌蚪主页 | 女人高潮一级片 | 国产最新精品视频 | 在线色亚洲 | 日韩久久久 | 久久综合婷婷综合 | 精品在线免费观看 | 成人av资源在线 | 超碰夜夜 | 日日综合网 | 最新日韩精品 | 欧美人体xx | 精品一二三四视频 | 久久综合精品国产一区二区三区 | 亚洲一区二区高潮无套美女 | 二区精品视频 | 激情丁香| 婷婷综合视频 | 午夜美女福利 | 国产极品尤物在线 | 国产福利91精品一区二区三区 | 亚洲综合在线观看视频 | 日韩mv欧美mv国产精品 | 日韩一区二区三区在线观看 | 国产精品久久久久久吹潮天美传媒 | 96在线 | av超碰免费在线 | 天天操天天射天天爽 | 天天色天天操综合网 | 91亚洲精| 久草久草视频 | 色综合久久99 | 亚洲天天做 | 啪啪免费观看网站 | 日日夜色| 国产中文字幕在线播放 | 九九在线视频免费观看 | 天堂av免费观看 | 日韩一区二区三免费高清在线观看 | 免费观看日韩av | 亚洲国产婷婷 | 国产成人在线综合 | 香蕉视频免费看 | 精品在线观看国产 | 主播av在线 | 又色又爽的网站 | 国产午夜亚洲精品 | 国产很黄很色的视频 | 中文字幕免费高清在线观看 | 99精品视频免费全部在线 | 免费av小说 | 日本在线中文在线 | 久草在在线视频 | 91免费高清 | 丁香六月婷婷 | 91麻豆视频 | 大胆欧美gogo免费视频一二区 | 日韩高清激情 | 天堂av在线免费观看 | 91精品视频在线观看免费 | 欧美视频99 | 91成人午夜 | 2021国产精品 | 在线看片中文字幕 | av色综合网| 日日夜夜亚洲 | 91av在线视频免费观看 | 天天天操天天天干 | 日韩精品1区2区 | 日本高清xxxx | 午夜久久福利 | 精品免费久久久久久 | 成人精品国产 | 亚洲高清视频在线观看免费 | 国产精品自产拍在线观看网站 | 婷婷丁香综合 | 精品欧美乱码久久久久久 | 九九av| 中文字幕日韩一区二区三区不卡 | 国产成人综合在线观看 | 免费一级片在线观看 | 黄色一区二区在线观看 | 99国产在线视频 | 狠狠色噜噜狠狠 | 欧美日韩aa | 丰满少妇在线观看 | 奇米影视999 | 91成人短视频在线观看 | 国产欧美中文字幕 | 99在线视频网站 | 视频在线在亚洲 | 激情欧美丁香 | 中文字幕首页 | 国产精品乱看 | 97超碰成人在线 | 欧美另类重口 | 久久少妇免费视频 | 国产色拍 | 国产尤物在线 | 一级黄色免费网站 | 玖玖玖精品 | 少妇bbbb搡bbbb搡bbbb | 久久成人精品 | 少妇高潮流白浆在线观看 | 欧美一进一出抽搐大尺度视频 | 中文字幕 国产精品 | 夜夜操网站 | 在线观看av网 | 亚洲精品一区二区网址 | 久久天天躁夜夜躁狠狠85麻豆 | 色av色av色av | 激情综合电影网 | 99热国产在线 | 国产精品初高中精品久久 | 亚洲久草在线视频 | 日韩在线电影一区二区 | 天天色天天射综合网 | 欧美人人爱 | 日韩欧美一区二区三区在线 | 国产美女视频免费观看的网站 | 麻豆国产精品va在线观看不卡 | 久久伊人国产精品 | 色综合咪咪久久网 | 免费无遮挡动漫网站 | 9色在线视频 | 人人舔人人爽 | 亚洲综合在线五月 | 国产福利资源 | 五月天婷婷在线视频 | 亚洲天堂精品视频 | 久久精选视频 | 久久久久黄 | 最近中文字幕高清字幕在线视频 | 免费色av | 成人v | 精品自拍sae8—视频 | 免费又黄又爽 | 91视频啪 | 天天摸天天操天天舔 | 日本精品视频一区二区 | 成人手机在线视频 | 最近免费观看的电影完整版 | 国产视频一二区 | 麻豆影视在线免费观看 | 婷婷色婷婷| 亚洲精品在线免费 | 黄色影院在线播放 | 亚洲闷骚少妇在线观看网站 | 久久激情精品 | 日韩在线免费高清视频 | 日韩成人精品一区二区 | 久久免费高清视频 | 69夜色精品国产69乱 | 久久国产精品色av免费看 | 狠狠的操你 | av福利网址导航大全 | 国产美腿白丝袜足在线av | 色欧美88888久久久久久影院 | 欧美日韩不卡在线 | 久久免费视频4 | 欧美精品一区二区在线播放 | 欧美爽爽爽 | 国产高清无av久久 | 国产在线播放观看 | 免费欧美精品 | 中文字幕在线看视频 | 国产成人精品三级 | 996久久国产精品线观看 | 午夜 免费| 亚洲欧洲精品视频 | av在线电影网站 | 日韩高清在线不卡 | 国产不卡毛片 | 亚洲第一伊人 | 国产福利一区二区在线 | 九九九九热精品免费视频点播观看 | 亚洲欧美日韩在线一区二区 | 亚洲精品视频国产 | 91精品在线麻豆 | 91字幕| 在线欧美a| 欧美成人精品在线 | 18久久久久 | 激情伊人五月天 | www激情com | 91超国产| 亚洲一区尤物 | av中文字幕亚洲 | 69xx视频| 日韩成人邪恶影片 | 亚洲爱爱视频 | 91国内在线 | 久久精品二区 | 精品在线免费观看 | 色视频在线观看免费 | 99热高清| 91香蕉国产在线观看软件 | 成年人免费电影 | 日女人电影 | 夜夜操网站 | 天天色天天爱天天射综合 | 成年人在线观看网站 | 青青河边草手机免费 | 999久久久欧美日韩黑人 | 久久久久在线观看 | 久久99操| 日韩av中文字幕在线免费观看 | 亚洲精品理论片 | 91在线看黄 | 91人人揉日日捏人人看 | 色综合天天色综合 | 欧美激情在线网站 | 九七视频在线 | 国产精品99久久99久久久二8 | 亚洲最大成人免费网站 | 国产精品国产三级国产aⅴ9色 | 在线黄网站 | 精品亚洲免a | 91麻豆精品国产91久久久久久 | 国产精品视频99 | 日韩精品视频免费在线观看 | 国产一区二区三区免费视频 | 国产尤物一区二区三区 | 日韩精品专区在线影院重磅 | 一级片免费观看 | 国产高清不卡一区二区三区 | 国产黄色av网站 | 日本黄色免费在线 | 色视频在线 | 97国产在线视频 | 欧美另类人妖 | 深夜成人av | 99久久99热这里只有精品 | 午夜精品视频福利 | 午夜丁香视频在线观看 | 亚洲日本国产 | 亚洲视频免费在线观看 | 日本婷婷色| 亚洲女同ⅹxx女同tv | 黄色亚洲大片免费在线观看 | 欧美成人h版电影 | 91亚洲精品久久久久图片蜜桃 | 日韩av一卡二卡三卡 | 97操操操| 午夜av免费看 | 日日碰狠狠躁久久躁综合网 | 97国产在线视频 | 国产天天综合 | 日韩免费不卡av | 欧美精品999| 色天天综合久久久久综合片 | 国内精品99| 中文字幕在线第一页 | 蜜臀精品久久久久久蜜臀 | av色图天堂网 | 久久久久亚洲精品国产 | 日本精品在线 | 99精品国产兔费观看久久99 | 久久有精品| a资源在线 | 国产精久久久久久久 | 欧美一级性生活 | 成+人+色综合 | 少妇超碰在线 | 黄污视频网站大全 | 99精品视频一区 | 久久综合婷婷综合 | h视频日本 | 西西4444www大胆视频 | 天天操狠狠操网站 | 国产成视频在线观看 | 国产精品3| 973理论片235影院9 | 国产艹b视频 | 中文字幕在线观看第一页 | 九九九在线观看视频 | 国产欧美在线一区 | 色婷婷播放 | 狠狠狠的干 | 久久久久国产精品午夜一区 | 操久在线| 成人av在线资源 | 国产一区成人在线 | 99国产在线视频 | 97电影网手机版 | 亚州精品天堂中文字幕 | 97在线观看免费高清完整版在线观看 | 久久国产精品二国产精品中国洋人 | 麻豆视频大全 | 日韩精品视频在线观看免费 | 深爱五月网 | 成人免费在线观看电影 | 久久午夜色播影院免费高清 | 欧美国产一区二区 | 玖玖视频免费在线 | 在线免费黄色av | 九九九九精品九九九九 | 天堂av最新网址 | 国产精品涩涩屋www在线观看 | 久久久精选| 欧美天天综合网 | 亚洲国产剧情av | 久久视频免费看 | 18久久久久久 | 这里有精品在线视频 | 少妇bbw撒尿 | 久草在线精品观看 | 毛片区 | 精品美女国产在线 | 亚洲欧美乱综合图片区小说区 | 日韩欧美电影 | 成人中心免费视频 | 日韩女同一区二区三区在线观看 | 欧美大荫蒂xxx | 久久久五月婷婷 | 中文字幕亚洲综合久久五月天色无吗'' | 九九在线精品视频 | 激情久久婷婷 | 久久精品99国产精品酒店日本 | 日韩免费b | 婷婷 中文字幕 | 国产日产精品一区二区三区四区的观看方式 | 久草在线视频在线观看 | 国产精品高清免费在线观看 | 精品视频999 | 成人在线播放网站 | 成年人黄色免费视频 | 亚洲欧美综合 | 久草视频精品 | 日本韩国精品在线 | 亚洲黄色成人av | 制服丝袜在线 | 国产精品久久久久久久久久久免费 | 国产黄大片在线观看 | 久久久久久久久久久久av | 亚洲黄色在线播放 | 欧美精品一区二区性色 | 在线看片成人 | 91精品导航 | 草在线视频 | 色网站中文字幕 | 91精品久久久久久久99蜜桃 | 国产精品久久一区二区三区, | av黄色成人 | 久久久亚洲精品 | 欧美午夜视频在线 | 一级一级一片免费 | 日韩精品久久中文字幕 | 在线香蕉视频 | 99精品观看 | 婷婷视频导航 | 日韩久久一区 | 精品日韩视频 | 国产精品久久久久久久久久白浆 | 欧美久久久久久久久久久 | 国产精品正在播放 | 天天噜天天色 | 精品国产免费久久 | 久久福利剧场 | 日韩综合第一页 | 国产色拍拍拍拍在线精品 | 中文字幕精品在线 | 日本爽妇网 | 韩日av在线 | 久久久精品久久日韩一区综合 | 99视频在线免费看 | 久久99精品国产麻豆宅宅 | 在线观看视频在线观看 | 国产在线第三页 | 99色在线视频 | 日本三级香港三级人妇99 | 激情综合五月天 | 久久久久久免费 | 99麻豆视频 | 亚洲精品国产精品99久久 | 特级毛片在线免费观看 | 亚洲午夜精 | 久久在线观看视频 | 99久久精品国产一区 | 日日爱网站 | 精品久久美女 | 看国产黄色大片 | 国产1区2区 | 成年人在线免费看视频 | 欧美成人黄 | 国产视频在线看 | 亚洲激情婷婷 | 一本一本久久a久久精品综合 | 成人黄色大片在线免费观看 | 亚洲小视频在线观看 | 久久久91精品国产一区二区精品 | 国产亚洲精品久 | 最近久乱中文字幕 | 免费网址你懂的 | 亚洲一级性 | 国产色视频一区二区三区qq号 | 亚洲va综合va国产va中文 | 欧美了一区在线观看 | 日本三级在线观看中文字 | 成人影片在线免费观看 | 四虎免费在线观看视频 | 亚洲国产av精品毛片鲁大师 | 美女免费视频一区 | 久久久www免费电影网 | 久草网站在线观看 | 免费一级黄色 | 日韩视频免费在线 | 97高清视频 | 欧美激情操 | 国产亚洲免费观看 | 国产人成在线观看 | 日韩av线观看 | 国产成人精品久 | 国产高清精 | 夜又临在线观看 | 久久久影院 | 亚洲国产中文在线观看 | 黄色在线观看免费网站 | 日韩xxx视频 | aa级黄色大片 | 午夜少妇| 精品国产乱码久久久久久久 | 天天干,天天射,天天操,天天摸 | 天天摸天天干天天操天天射 | 成人影片在线免费观看 | 日韩激情三级 | 日韩视频图片 | 麻豆小视频在线观看 | av在线影片| 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 久久视频这里有精品 | 九九九热精品免费视频观看 | 免费高清在线视频一区· | 免费91麻豆精品国产自产在线观看 | 午夜精品久久久久久99热明星 | 亚洲人在线7777777精品 | 欧美一二三视频 | 91mv.cool在线观看| 伊人狠狠干 | 最近中文字幕高清字幕在线视频 | 国产精品福利无圣光在线一区 | 草久在线播放 | 欧美日韩高清 | 国产一区精品在线观看 | 国产精品对白一区二区三区 | 日韩高清在线一区 | 国产精品美女 | av在线小说 | www.伊人网 | 国产在线久草 | 亚洲成人免费观看 | 欧美激情精品久久久久久免费印度 | 欧美9999 | 久久无码av一区二区三区电影网 | 久久免费av电影 | 欧美 日韩 国产 成人 在线 | 超碰在线免费福利 | 国产一区二区高清视频 | 免费视频在线观看网站 | 日韩综合视频在线观看 | 欧产日产国产69 | 成年人免费看片 | 久久男人免费视频 | 欧美大片在线观看一区 | 这里有精品在线视频 | 一区二区激情视频 | 国产我不卡 | 六月天综合网 | 五月花激情 | 五月婷婷中文字幕 | 亚洲一区二区高潮无套美女 | 操天天操 | 91av视频 | 国产视频亚洲精品 | 国产伦理久久精品久久久久_ | 在线免费av电影 | 五月婷婷色综合 | 人人超在线公开视频 | 日韩美视频 | av中文字幕免费在线观看 | 99综合电影在线视频 | 久久人人插 | 天天做综合网 | 成人在线观看资源 | 激情欧美一区二区三区 | 久久亚洲免费视频 | 亚洲电影图片小说 | 国产精品刺激对白麻豆99 | 在线观看av大片 | 99中文字幕视频 | 久久久久久久久久久高潮一区二区 | 又爽又黄又无遮挡网站动态图 | 天天综合久久 | 亚洲精品国产自产拍在线观看 | 亚洲精品福利视频 | 高清中文字幕 | 日本精品一区二区在线观看 | 日韩免费福利 | 国产精品原创 | 久久a视频| 九九影视理伦片 | 超碰免费在线公开 | 日韩免费不卡视频 | 亚洲资源在线观看 | 最近免费观看的电影完整版 | 久久免费在线观看视频 | 久久草在线视频国产 | 国产成人三级在线观看 | 欧美精品久久久久性色 | 在线观看国产麻豆 | 欧美日韩成人 | 玖玖在线视频观看 | av免费观看网站 | 97av在线视频 | 区一区二区三区中文字幕 | 免费久久网 | 亚洲黄色免费网站 | 欧美日比视频 | 久久人视频 | 国产精品99久久久久久久久久久久 | 日韩精品亚洲专区在线观看 | 成人蜜桃视频 | 国产日本在线播放 | 色婷婷欧美 | 91日韩精品一区 | wwwwwww色| 97超碰在线久草超碰在线观看 | 久久久精品小视频 | 国产午夜影院 | 久草在在线 | 99久热在线精品视频 | 天天射天天做 | 美女黄视频免费看 | 在线观看国产中文字幕 | 日韩电影在线一区 | 久久久天堂 | 69国产成人综合久久精品欧美 | 精品久久视频 | 成人免费观看完整版电影 | 国产精品免费久久久久 | 69亚洲乱| 777视频在线观看 | 黄色免费观看 | 九九热只有这里有精品 | 99久久99久久精品国产片果冰 | 久久亚洲专区 | 欧美日韩免费一区 | 91九色蝌蚪视频在线 | 久久香蕉一区 | 日日精品 | 国产精品美女网站 | 亚洲美女视频在线 | 色综合久久久 | 久久人人精 | 久久免费视频在线观看30 | 久久精品国产亚洲精品2020 | av久久在线 | 我爱av激情网 | 国产视频资源在线观看 | 精品久久久网 | 九九九热 | 尤物一区二区三区 | 欧美成人播放 | 久久精品爱爱视频 | 青春草视频 | 午夜精品电影 | 天天人人综合 | 国产成人av片 | 激情图片久久 | 欧美最猛性xxx | 日产av在线播放 | 久久久免费精品国产一区二区 | 天天看天天干 | 91人人澡人人爽人人精品 | 国产在线更新 | 欧美激情视频一二三区 | 91久久国产综合精品女同国语 | 国产精品系列在线播放 | 久久久999| 久久久久观看 | av在线免费播放网站 | 欧美日韩精品在线免费观看 | 中文字幕免费看 | 色爽网站 | 免费av电影网站 | 青青河边草免费观看完整版高清 | 国产精品久久一 | 青青射 | 在线va网站 | 中文字幕美女免费在线 | 国产精品免费久久久 | 日日干激情五月 | 91精品视频免费看 | 性色视频在线 | 国产香蕉97碰碰碰视频在线观看 | 二区三区av | 国产福利91精品一区二区三区 | 日韩精品视频网站 | 国产精品久久毛片 | 久久久av免费 | 久久久精品99 | 久久久久久久久久久福利 | 深夜激情影院 | 国产一区免费观看 | 日韩夜夜爽 | 日本中文字幕电影在线免费观看 | 国产天天综合 | 午夜久久久精品 | 在线视频精品 | 中文字幕在线观看完整版电影 | 97超碰国产在线 | 日韩在线中文字幕 | 久久成熟 | 97超碰人人澡 | 久久综合中文字幕 | 国产91亚洲 | 亚洲精品国久久99热 | 日本在线成人 | av在线超碰 | 国产精品一区久久久久 | 91九色蝌蚪视频在线 | 韩日在线一区 | 国产99久久精品一区二区永久免费 | 91超级碰| 五月婷婷中文网 | 偷拍福利视频一区二区三区 | 午夜久久福利影院 | 日韩精品一区二区三区电影 | 免费在线观看日韩欧美 | 久久亚洲免费视频 | 天天爽夜夜操 | 亚洲国产成人在线 | 久久国产精品视频观看 | 国产精品久久久久久久久久久久冷 | 成人片在线播放 | 久黄色| 91日韩精品| 国产超碰97 | 手机av在线免费观看 | 国产中文字幕三区 | 日日干美女 | 国产你懂的在线 | 激情在线五月天 | 亚洲专区中文字幕 | 亚洲综合一区二区精品导航 | 深爱婷婷久久综合 | 在线视频成人 | 视频在线观看一区 | 在线不卡中文字幕播放 | 久久最新视频 | 91av视频在线免费观看 | 成人免费共享视频 | 黄色三级网站 | 国产精品99久久久久的智能播放 | 日韩网站视频 | 国产黄色美女 | 国产69熟 | 亚洲精品在线观看视频 | 天天做天天射 | 精品人妖videos欧美人妖 | 国产精品入口66mio女同 | 欧美亚洲免费在线一区 | 天天操天天爱天天爽 | 日韩中文在线观看 | 久久久久电影网站 | 欧美不卡视频在线 | 97在线观看视频 | 亚洲精品xxx| 亚洲二区精品 |