bzoj 2655 calc 拉格朗日插值

2022-05-12 10:22:54 字數 900 閱讀 9240

題目:

先設 f[i][j] 表示長度為 i 的序列,範圍是 1~j 的答案;

則 f[i][j] = f[i-1][j-1] * i * j + f[i][j-1],分別是選不選 j,選 j 的話放在哪個位置;

看不出次數...據說這是個最高次數為 2i 的多項式,感性理解...

知道了次數,就可以用拉格朗日插值算了,dp得到比較小的 2*n+1 個值,即可算出 x=a 的答案。

**如下:

#include#include

#include

#include

using

namespace

std;

typedef

long

long

ll;int

const xn=505

;int n,a,mod,f[xn][xn<<1],yy[xn<<1

];int

rd()

while(ch>='

0'&&ch<='

9')ret=(ret<<3)+(ret<<1)+ch-'

0',ch=getchar();

return f?ret:-ret;

}int upt(int x)

int pw(ll a,int

b)int

main()

for(int i=1;i<=m;i++)yy[i]=f[n][i];

ll ans=0;

for(int i=1;i<=m;i++)

ans=(ans+s1*pw(s2,mod-2)%mod*yy[i]%mod)%mod;

}printf(

"%lld\n

",ans);

return0;

}

bzoj2655 calc 拉格朗日插值

description 乙個序列a1 an a1,an 是合法的,當且僅當 長度為給定的 n n a1 an role presentation style position relative a1,ana1 an都是 1,a 1,a 中的整數。a1 an a1,an 互不相等。乙個序列的值定義為它...

BZOJ2655 拉格朗日插值 calc

bzoj2655 考慮dp的話是f i j i f i 1 j 1 f i 1 j f i j i f i 1 j 1 f i 1 j f i j i f i 1 j 1 f i 1 j 分別表示選當前這個數和不選 然而i ii很大,有1e9 發現每次轉移乘上的是乙個i ii,且j 1 j 1j 1...

拉格朗日插值與拉格朗日反演

模板 拉格朗日插值 拉格朗日插值法 f x sum limits 我們先把右邊那部分提出來看 ell x prod x x cdots x x cdots x 舉個例子吧 有二次函式上的三點 f 4 10,f 5 5.25,f 6 1 求 f 18 求出三個基本式 ell x ell x ell x...