乙個奇妙的斯特林數推導

2022-03-31 14:07:27 字數 1402 閱讀 2167

大概沒啥人來看這個鹹魚的部落格了吧。

雖然一直沒更新,但時不時還會回來看。有些偶然的感想,或者被以前自己高妙的想法震驚到的,還會放在這裡。

因為很長時間沒搞oi了,數學的內容應該會多一點。

給定\(n,m,k\),求:

\[\sum_^m

\]\(n,m\leq 10^9,k\leq 10^3\)

多組詢問,組數\(\leq 100\)

\[\sum_^m

\]\[=\frac\sum_^m(n-m+2i)^

\]\[=\frac\sum_^m\big(\sum_^k(n-m)^}(2i)^\big)

\]\[=\frac\sum_^k(n-m)^}\big(\sum_^m(2i)^\big)

\]考慮如何計算\(\sum_^m(2i)^\):

\[=\sum_^m\big(\sum_^j(-1)^\beginj\\ p\end(2i)^p\big)

\]\[=\sum_^m\big(\sum_^j(-1)^\beginj\\ p\end2^pi^p\big)

\]\[=\sum_^j(-1)^\beginj\\ p\end2^p\big(\sum_^mi^p\big)

\]\[=\sum_^j(-1)^\beginj\\ p\end2^p\big(\sum_^m\big(\sum_^p\beginp\\ o\endo!\big)\big)

\]\[=\sum_^j(-1)^\beginj\\ p\end2^p\big(\sum_^p\beginp\\ o\endo!\big(\sum_^m\big)\big)

\]\[=\sum_^j(-1)^\beginj\\ p\end2^p\big(\sum_^p\beginp\\ o\endo!2^\big)

\]\[=\sum_^j(-1)^\beginj\\ p\end2^p\big(\sum_^p\beginp\\ o\endm^2^\big)

\]直接計算是\(o(k^3)\)的,但考慮\(j,o\)之間的貢獻:

\[\sum_^j(-1)^\beginj\\ p\end2^p\beginp\\o\end

\]是常數,可以用\(o(k^3)\)預處理,就可以做到\(o(k^2)\)回答詢問。

\(p.s.\)聽說這題有純組合數做法,有沒有人教教我啊

2020.12.28

至少,我們都曾經閃耀過。

2021.10.11

突然回看部落格,會推組合數做法了。

太弱小了沒有力量。

\(\)實際上是\(i\)的\(k\)次多項式,將其拆分為若干\(\)的線性疊加,分別求解題中的和式。

\[\sum_^m=2^

\]可以用組合數公式證明上面的式子,但組合意義更快:式子就是統計\(m\)個元素先選任意個再選\(k\)個的方案,那麼首先列舉最後選出的\(k\)個,剩下的是否出現在第一次選擇中隨意。

數的長度 斯特林公式的運用

時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 n!階乘是乙個非常大的數,大家都知道計算公式是n n n 1 2 1.現在你的任務是計算出n!的位數有多少 十進位制 輸入 首行輸入n,表示有多少組測試資料 n 10 隨後n行每行輸入一組測試資料 n 0 n 1000000 輸...

NYOJ 數的長度(斯特林公式的應用)

時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述n!階乘是乙個非常大的數,大家都知道計算公式是n n n 1 2 1.現在你的任務是計算出n!的位數有多少 十進位制 輸入首行輸入n,表示有多少組測試資料 n 10 隨後n行每行輸入一組測試資料 n 0 n 1000000 輸出對...

完全不會的斯特林數總結

第一類斯特林數還不怎麼會呢,於是就先寫第二類了 第二類斯特林數 beginn m end 表示把 n 個元素分配到 m 個無標號集合的方案數 遞推形式是 beginn m end beginn 1 m 1 end m beginn 1 m end 就是對於這個新加進來的元素要不然新開乙個集合,要不然...