洛谷3711 倉鼠的數學題(NTT 伯努利數)

2021-08-14 19:50:31 字數 1166 閱讀 7850

題面

題意:給出a陣列,求 ∑n

k=0s

k(x)

ak所表示多項式的每一項係數。

額,直接將伯努利數帶進s裡,得 =∑

k=0n

akk+

1∑g=

0kcg

k+1b

gxk+

1−g

=∑k=

0nak

k!∑g

=0nb

gg!x

k+1−

g(k+

1−g)

! 設c=k+1-g,則xc

的係數為1c

!∑k+

1−g==

cakk

!∗bg

g!就是個卷積了。

到處膜拜大佬們的程式,總算把我程式搞對了

但有兩個似乎很重要的問題還不懂。

①樣例是客觀存在的,我推的公式也和題解一樣

為什麼b

1 要等於12

才能對

②b+和b

− 又是什麼東西

#include 

#include

#include

#include

#include

#include

#include

#include

using namespace std;

#define mmst(a, b) memset(a, b, sizeof(a))

#define mmcp(a, b) memcpy(a, b, sizeof(b))

typedef long long ll;

const int n=1001000;

const ll mo=998244353;

ll i[n],jc[n],ijc[n];

ll e[n],d[n],b[n],f[n];

int n,rev[n];

ll cheng(ll a,ll b)

void init(int lim)}}

if(!ops)

for(int i=0;i*i[n]%mo;

}void ny(int

x)ll nn,aa[n];

int main()

倉鼠的數學題,洛谷P3711,伯努利數簡單應用

如果不會伯努利數可以先看看本人的學習筆記 然後給出來了式子就直接往上套,因為要求關於x i的係數所以我們只能做0 x 1的自然數冪和,先把x k單獨提出來,最後再給每一項加上a k即可.顯然最後一部分是乙個翻轉套路,然後求一遍fft即可.include define vi vectorusing n...

洛谷比賽數學題 1

zlh秒的題,我根本不會,出題人欽點此題提高 想來我要爆零了。題面 這題n,a都巨大無比,所以演算法要盡量往k身上靠,先推一波式子 把這裡sigma內的東西拆開得到 第k此項係數c k,k 肯定是1,消去,再換一下i,j列舉順序 這裡就出現了和原式很相似的東西,設乙個二元函式a 剛剛那個式子變為 這...

洛谷 3768 簡單的數學題

根據crash的數字 很容易可以將式子化簡為 begin ans sum limits n sum limits ij i,j sum limits n d 3 sum limits right rfloor mu k k 2 left sum limits right rfloor i right...