国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

P4725 【模板】多項(xiàng)式對(duì)數(shù)函數(shù)(多項(xiàng)式 ln)

這篇具有很好參考價(jià)值的文章主要介紹了P4725 【模板】多項(xiàng)式對(duì)數(shù)函數(shù)(多項(xiàng)式 ln)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

洛谷P4725 【模板】多項(xiàng)式對(duì)數(shù)函數(shù)(多項(xiàng)式 ln)

題目大意

給你一個(gè) n ? 1 n-1 n?1次多項(xiàng)式 A ( x ) A(x) A(x),求一個(gè) ? m o d ? x n \bmod x^n modxn下的多項(xiàng)式 B ( x ) B(x) B(x),滿足 B ( x ) ≡ ln ? A ( x ) B(x)\equiv \ln A(x) B(x)lnA(x)

? m o d ? 998244353 \bmod 998244353 mod998244353下進(jìn)行, a i ∈ [ 0 , 998244353 ) a_i\in[0,998244353) ai?[0,998244353)且為整數(shù)。

保證 a 0 = 1 a_0=1 a0?=1

n ≤ 1 0 5 n\leq 10^5 n105


題解

前置知識(shí):多項(xiàng)式乘法逆

依題意, B ( x ) = ln ? A ( x ) B(x)=\ln A(x) B(x)=lnA(x),兩邊同時(shí)求導(dǎo)得

B ′ ( x ) = A ′ ( x ) A ( x ) B'(x)=\dfrac{A'(x)}{A(x)} B(x)=A(x)A(x)?

對(duì) A ( x ) A(x) A(x)進(jìn)行多項(xiàng)式乘法逆求出 1 A ( x ) \dfrac{1}{A(x)} A(x)1?,然后根據(jù)求導(dǎo)法則求出 A ′ ( x ) A'(x) A(x)。然后 B ′ ( x ) = A ′ ( x ) ? 1 A ( x ) B'(x)=A'(x)\cdot \dfrac{1}{A(x)} B(x)=A(x)?A(x)1?,再積分一下得到 B ( x ) B(x) B(x)。

因?yàn)槌?shù)項(xiàng) a 0 = 1 a_0=1 a0?=1,所以 B ( x ) B(x) B(x)的常數(shù)項(xiàng) b 0 = 0 b_0=0 b0?=0。

時(shí)間復(fù)雜度為 O ( n log ? 2 n ) O(n\log^2 n) O(nlog2n)。

求導(dǎo)和積分

( x n ) ′ = n x n ? 1 (x^n)'=nx^{n-1} (xn)=nxn?1

∫ x n d x = 1 n + 1 x n + 1 \int x^ndx=\dfrac{1}{n+1}x^{n+1} xndx=n+11?xn+1文章來源地址http://www.zghlxwxcb.cn/news/detail-435340.html

code

#include<bits/stdc++.h>
using namespace std;
long long w,wn,f[500005],g[500005],a1[500005];
const long long G=3,mod=998244353;
long long mi(long long t,long long v){
	if(!v) return 1;
	long long re=mi(t,v/2);
	re=re*re%mod;
	if(v&1) re=re*t%mod;
	return re;
}
void ch(long long *a,int l){
	for(int i=1,j=l/2;i<l-1;i++){
		if(i<j) swap(a[i],a[j]);
		int k=l/2;
		while(j>=k){
			j-=k;k>>=1;
		}
		j+=k;
	}
}
void ntt(long long *a,int l,int fl){
	for(int i=2;i<=l;i<<=1){
		if(fl==1) wn=mi(G,(mod-1)/i);
		else wn=mi(G,mod-1-(mod-1)/i);
		for(int j=0;j<l;j+=i){
			w=1;
			for(int k=j;k<j+i/2;k++,w=w*wn%mod){
				long long t=a[k],u=w*a[k+i/2]%mod;
				a[k]=(t+u)%mod;
				a[k+i/2]=(t-u+mod)%mod;
			}
		}
	}
	if(fl==-1){
		long long ny=mi(l,mod-2);
		for(int i=0;i<l;i++) a[i]=a[i]*ny%mod;
	}
}
void solve(int l){
	if(l==1){
		g[0]=mi(f[0],mod-2);
		return;
	}
	solve((l+1)/2);
	int len=1;
	while(len<2*l) len<<=1;
	for(int i=0;i<l;i++) a1[i]=f[i];
	for(int i=l;i<len;i++) a1[i]=0;
	ch(a1,len);ch(g,len);
	ntt(a1,len,1);
	ntt(g,len,1);
	for(int i=0;i<len;i++){
		g[i]=(2-a1[i]*g[i]%mod+mod)%mod*g[i]%mod;
	}
	ch(g,len);
	ntt(g,len,-1);
	for(int i=l;i<len;i++) g[i]=0;
}
void qiudao(long long *a,int l){
	for(int i=0;i<l;i++) a[i]=a[i+1]*(i+1)%mod;
	a[l-1]=0;
}
void jifen(long long *a,int l){
	for(int i=l;i>=1;i--) a[i]=a[i-1]*mi(i,mod-2)%mod;
	a[0]=0;
}
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&f[i]);
	}
	solve(n);
	int len=1;
	while(len<n*2) len<<=1;
	qiudao(f,len);
	ch(f,len);ch(g,len);
	ntt(f,len,1);ntt(g,len,1);
	for(int i=0;i<len;i++) f[i]=f[i]*g[i]%mod;
	ch(f,len);
	ntt(f,len,-1);
	jifen(f,len);
	for(int i=0;i<n;i++){
		printf("%lld ",f[i]);
	}
	return 0;
}

到了這里,關(guān)于P4725 【模板】多項(xiàng)式對(duì)數(shù)函數(shù)(多項(xiàng)式 ln)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python做曲線擬合(一元多項(xiàng)式擬合及任意函數(shù)擬合)

    Python做曲線擬合(一元多項(xiàng)式擬合及任意函數(shù)擬合)

    目錄 1. 一元多項(xiàng)式擬合 使用方法?np.polyfit(x, y, deg) 2. 任意函數(shù)擬合 使用 curve_fit() 方法 實(shí)例: (1)初始化 x 和 y 數(shù)據(jù)集 (2)建立自定義函數(shù) (3)使用自定義的函數(shù)生成擬合函數(shù)繪圖? polyfig 使用的是最小二乘法,用于擬合一元多項(xiàng)式函數(shù)。 參數(shù)說明: x 就是x坐標(biāo),

    2024年02月02日
    瀏覽(27)
  • 在嵌入式設(shè)備中用多項(xiàng)式快速計(jì)算三角函數(shù)和方根

    慣性傳感器的傾角計(jì)算要用到三角函數(shù). 在 MCS-51, Cortex M0, M3 之類的芯片上編程時(shí), 能使用的資源是非常有限, 通常只有兩位數(shù)KB的Flash, 個(gè)位數(shù)KB的RAM. 如果要使用三角函數(shù)和開方就要引入 math.h, 會(huì)消耗掉10KB以上的Flash空間. 在很多情況下受硬件資源限制無法使用 math.h, 這時(shí)候使

    2024年03月09日
    瀏覽(20)
  • numpy 多項(xiàng)式函數(shù)回歸與插值擬合模型;ARIMA時(shí)間序列模型擬合

    numpy 多項(xiàng)式函數(shù)回歸與插值擬合模型;ARIMA時(shí)間序列模型擬合

    參考: https://blog.csdn.net/mao_hui_fei/article/details/103821601 1、多項(xiàng)式函數(shù)回歸擬合 x ^3+ x ^2… 2、多項(xiàng)式函數(shù)插值擬合 對(duì)于插值函數(shù) interp1d(phone_time, phone_x, kind=‘cubic’),無法直接獲取多項(xiàng)式的參數(shù)與具體函數(shù)表達(dá)式。這是因?yàn)樵摵瘮?shù)使用樣條插值方法,它的內(nèi)部實(shí)現(xiàn)是基于一組數(shù)

    2024年02月16日
    瀏覽(28)
  • AA@有理系數(shù)多項(xiàng)式@整系數(shù)多項(xiàng)式@本原多項(xiàng)式@有理多項(xiàng)式可約問題

    有理數(shù)域上一元多項(xiàng)式的因式分解. 作為 因式分解定理 的一個(gè)特殊情形,我們有結(jié)論: 每個(gè)次數(shù)大等于1的 有理系數(shù)多項(xiàng)式 都能 唯一地 分解成 不可約的有理系數(shù)多項(xiàng)式 的乘積. 有理數(shù)域版本中,從一般數(shù)域具體到了\\\" 有理系數(shù) \\\" 我們討論多項(xiàng)式的時(shí)候,都假設(shè)多項(xiàng)式是在某個(gè)數(shù)

    2024年02月16日
    瀏覽(32)
  • 用鏈表表示多項(xiàng)式,并實(shí)現(xiàn)多項(xiàng)式的加法運(yùn)算

    用鏈表表示多項(xiàng)式,并實(shí)現(xiàn)多項(xiàng)式的加法運(yùn)算

    輸入格式: 輸入在第一行給出第一個(gè)多項(xiàng)式POLYA的系數(shù)和指數(shù),并以0,0 結(jié)束第一個(gè)多項(xiàng)式的輸入;在第二行出第一個(gè)多項(xiàng)式POLYB的系數(shù)和指數(shù),并以0,0 結(jié)束第一個(gè)多項(xiàng)式的輸入。 輸出格式: 對(duì)每一組輸入,在一行中輸出POLYA+POLYB和多項(xiàng)式的系數(shù)和指數(shù)。 輸入樣例: 輸出樣例: 本

    2024年02月07日
    瀏覽(31)
  • 【C 數(shù)據(jù)結(jié)構(gòu)】 用單鏈表存儲(chǔ)一元多項(xiàng)式,并實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加運(yùn)算。

    【C 數(shù)據(jù)結(jié)構(gòu)】 用單鏈表存儲(chǔ)一元多項(xiàng)式,并實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加運(yùn)算。

    本次代碼純c語言,可以支持輸入兩個(gè)多項(xiàng)式的項(xiàng)式、系數(shù)、指數(shù)。 實(shí)驗(yàn)?zāi)康模?1 掌握單鏈表的基本工作原理; 2 實(shí)現(xiàn)鏈?zhǔn)酱鎯?chǔ)下的兩個(gè)多項(xiàng)式的相加。 實(shí)驗(yàn)步驟 1 定義鏈?zhǔn)酱鎯?chǔ)的數(shù)據(jù)結(jié)構(gòu) 2 完成多項(xiàng)式的初始化,即給多項(xiàng)式賦初值 3 完成多項(xiàng)式的輸出 4 實(shí)現(xiàn)多項(xiàng)式的相加及結(jié)

    2024年02月06日
    瀏覽(34)
  • 基于MATLAB的矩陣性質(zhì):行列式,秩,跡,范數(shù),特征多項(xiàng)式與矩陣多項(xiàng)式

    本節(jié)主要討論矩陣的基本概念和性質(zhì),結(jié)合MATLAB的基礎(chǔ)代碼,適合新手。 矩陣的 行列式 的數(shù)學(xué)定義如下: MATLAB調(diào)用的格式如下: 求以下矩陣的行列式: 解: MATLAB代碼如下: 運(yùn)行結(jié)果: ans = ? ?5.1337e-13 利用解析解的方法計(jì)算20??20的Hilbert矩陣的行列式,并分析其代碼運(yùn)

    2024年02月05日
    瀏覽(23)
  • 牛頓插值法、拉格朗日插值法、三次插值、牛頓插值多項(xiàng)式、拉格朗日插值多項(xiàng)式

    牛頓插值法、拉格朗日插值法、三次插值、牛頓插值多項(xiàng)式、拉格朗日插值多項(xiàng)式

    兩點(diǎn)式線性插值 調(diào)用Matlab庫函數(shù) 拉格朗日二次插值: 牛頓二次插值 結(jié)果分析:通過對(duì)比不同插值方法,可以看到在一定范圍內(nèi)(高次會(huì)出現(xiàn)龍格現(xiàn)象),插值次數(shù)越高,截?cái)嗾`差越?。ú逯到Y(jié)果越接近于真實(shí)函數(shù)值);同時(shí),對(duì)于相同次數(shù)的插值,由于不同的插值方法它們

    2024年02月11日
    瀏覽(31)
  • 多項(xiàng)式擬合

    多項(xiàng)式擬合

    文章內(nèi)容部分參考: 建模算法入門筆記-多項(xiàng)式擬合(附源碼) - 嗶哩嗶哩 (bilibili.com) (9條消息) 數(shù)學(xué)建模——人口預(yù)測(cè)模型 公有木兮木戀白的博客-CSDN博客 數(shù)學(xué)建模人口預(yù)測(cè)模型 多項(xiàng)式擬合是數(shù)據(jù)擬合的一種,與插值有一定區(qū)別(插值要求曲線經(jīng)過給定的點(diǎn),擬合不一定經(jīng)

    2024年02月04日
    瀏覽(28)
  • 多項(xiàng)式混沌展開法

    多項(xiàng)式混沌展開法

    多項(xiàng)式混沌采用多項(xiàng)式基組合成隨機(jī)空間,來描述和傳播隨機(jī)變量的不確定性。本質(zhì)是利用正交多項(xiàng)式的優(yōu)異性能,通過隨機(jī)變量的輸入到響應(yīng)的映射過程建立代理模型。該方法收斂性好,使用方便,能較好的適用于復(fù)雜的系統(tǒng)。但是該方法理論難度高,多元情況下正交多項(xiàng)

    2023年04月15日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包