大概沒啥人來看這個鹹魚的部落格了吧。
雖然一直沒更新,但時不時還會回來看。有些偶然的感想,或者被以前自己高妙的想法震驚到的,還會放在這裡。
因為很長時間沒搞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 就是對於這個新加進來的元素要不然新開乙個集合,要不然...