bzoj 4555 求和 線性篩 生成函式

2022-04-30 04:00:07 字數 2158 閱讀 5260

題目傳送門

傳送門題目大意

(大家應該都知道)

$$\begin

f(n) &= \sum_^\sum_^\genfrac\0{}j! 2^j \\

&= \sum_^\sum_^\genfrac\0{}j! 2^j \\

&= \sum_^\sum_^\sum_^ k^i\binom(-1)^ 2^j \\

&= \sum_^\sum_^ \binom(-1)^ 2^j \sum_^k^i

\end

$$​  設$s_k(n) = \sum_^ k^i =\begin\frac - 1}& (k\neq 1) \\ n + 1 &(k = 1)\end $

​  那麼有$f(n) = \sum_^ \sum_^ \binom(-1)^ 2^i s_j(n + 1)$

​  注意到若$g(x) = \sum_^ g_i x^i$,那麼$g(x + d) = \sum_^ \sum_^ g_j \binom d^ x^i$

$$\begin

f(n) &= \sum_^ s_j(n) \sum_^ \binom (-1)^ 2^

\end

$$那麼這裡的$g(x) = \sum_^ 2^i x^i, d = -1$

$$\begin

g(x) &= \frac - 1} \\

g(x - 1) &= \frac (x - 1)^ - 1}

\end

$$​  用二項式定理展開上面的,剩下暴力多項式除。

​  逆元和$k^n$都可以線性預處理。然後就做完了。

/**

* bzoj

* problem#4555

* accepted

* time: 156ms

* memory: 3256k

*/#include using namespace std;

typedef bool boolean;

#define ll long long

const int mod = 998244353;

template class z

z(int x) : v(x)

z(ll x) : v(x % mod)

friend z operator + (const z& a, const z& b)

friend z operator - (const z& a, const z& b)

friend z operator * (const z& a, const z& b)

friend z operator ~(const z& a)

friend z operator - (const z& a)

z& operator += (z b)

z& operator -= (z b)

z& operator *= (z b)

friend boolean operator == (const z& a, const z& b)

};z<> qpow(z<> a, int p)

} return rt;

}typedef z<> zi;

const int n = 1e5 + 5;

int n;

zi inv[n], _g[n], g[n];

void get_g()

zi c = 1, v = qpow(2, n + 1);

for (int i = 0; i <= n + 1; i++)

c = c * (n - i + 1) * inv[i + 1];

} _g[0] -= 1;

// g = _g / (2x - 3)

for (int i = n + 1; i; i--)

}zi pw[n];

int pri[n];

bitsetvis;

void euler()

for (int *p = pri, *_p = pri + num, x; p != _p && (x = *p * i) <= n; p++)

} }}int main()

printf("%d\n", ans.v);

return 0;

}

BZOJ4555 求和(多種解法混合版本)

bzoj 給定 n 求 f n sum sum s i,j times 2 j times j n 100000 結果對 998244353 取模。其中 s i,j 是第二類斯特林數,表示將 i 個有區別的球放入 j 個相同的盒子中,每個盒子非空的方案數。s n,m s n 1,m 1 s n 1,...

bzoj4555 數學推導 畫柿子 NTT)

題面 今天學了多項式逆元,找到了這題。但是本蒟蒻覺得這題和逆元並沒有什麼關係,和逆元有關的題解也看不懂。題目要你求這樣乙個函式,結果對乙個費馬素數取模。s i,j 為第二類斯特林數,題目還惡意地給出了遞推公式。含義是將n個不同的元素拆分成m個集合的方案數,顯然當m n時,s n,m 0。所以原式首先...

bzoj4805 尤拉函式求和(杜教篩)

題意 給定n,求尤拉函式前n項和。資料範圍 n 2e9 解法 尤拉函式性質 d n d n sum d n d n d n轉化為卷積形式 i i d i id i id 杜教篩遞推式 g 1 s n i 1n f g i i 2 ng i s ni g 1 s n sum n f g i sum n...