退役前做題記錄

2022-05-03 18:21:08 字數 1359 閱讀 3257

rt,做完就退役

傳送門每個位置的生成函式是\(\over 1-x^}\),可以拆成乙個完全揹包和乙個\(01\)揹包,類似的每個位置的逆\(\over 1-x^}\)也可以,那麼可以預處理出字首揹包和字首揹包的逆,每一次\(o(c)\)回答詢問就行了

傳送門首先考慮暴力,相當於每次看看能不能把\(\)卷上去,如果前面都已經確定了,那麼答案多項式只會被這一項影響了,所以\(\)要不要卷上去一定是被當前多項式和答案多項式確定的,所以\(s\)事實上是唯一確定的

記答案多項式為\(b(x)\),\(s\)的多項式為\(a(x)\),其中\(a\)的每個係數為\(0\)或\(1\),那麼有

\[\begin

b(x)

&=\prod_^n }\\

&=\exp\left(-\sum a_i \ln (1-x^i)\right)\\

&=\exp\left(\sum a_i \sum_\over j}\right)\\

\end\]即

\[\begin

\ln b(x)

&=\sum a_i \sum_\over j}\\

\end

\]我們從\(1\)到\(n\)依次考慮\(a_i=0\)還是\(1\),那麼肯定已經被唯一確定了,對之後的有影響的項是\(o()\)項,所以總複雜度還是\(o(n\log n)\)

傳送門怎麼老是犯sb錯誤啊

暴力維護\(f_\)表示第\(i\)個人還有\(j\)滴血的概率,每次詢問時暴力把所有人卷起來,然後對每個人退揹包就行了,退揹包手動模擬多項式除法就可以做到單次\(o(n)\)了

傳送門類似loj#2271畫一下柿子就行了

傳送門首先打個表發現答案與操作順序無關,再手玩一下發現如果操作的數已經確定了,那麼某一位被更改的次數就是自己變的次數以及被後面進製的次數之和,寫成偽**就是

int calc()
其中\(f_i\)表示第\(i\)位被選擇的次數,這樣我們可以寫出乙個\(o(n^2)\)的做法,也就是設\(f_\)表示考慮到第\(i\)位,且\(g_i=j\)的概率,轉移即可

冷靜分析一波,發現乙個\(g_i\)最多隻會影響後面\(o(\log n)\)個位置,也就是說如果我們把\(f_i\)寫成生成函式,那麼所有多項式的次數之和是\(o(n\log n)\)級別的,那麼對於每個位置,分治\(ntt\)算出原來的多項式,然後從前往後多項式乘法即可,總複雜度\(o(n\log^2n)\)

傳送門居然連容斥都想不到,可以退役了

首先容斥\(abcd\)的個數,然後列舉\(a,b,c,d\)的個數之後用個多項式係數計算一下方案數就行了。發現\(d\)的個數不用列舉,再發現合法的\(c\)的個數是乙個區間,預處理一下就好了,總複雜度\(o(n^3)\),或者直接把四個多項式卷積起來也行

KMP做題記錄

題目太長不貼了 這道題很巧妙,給定乙個字串s,求最少在首尾新增幾個字元後,s變為乙個迴圈了n次的字串 n 1 假設我們有乙個迴圈串s abcabcabc 我們根據kmp求一次next陣列,就可以通過next strlen s 得到乙個迴圈節的位置從而求出迴圈節的長度,顯然,迴圈節能被s整除。如果s ...

8 25 9 25 做題記錄

2018.8.25 上午 1.ac 洛谷p1514引水入城 搜尋 貪心 2.ac 洛谷p3918 國家集訓隊 特技飛行 貪心 下午 3.ac 洛谷p1120 小木棍 資料加強版 搜尋 剪枝 4.ac 洛谷p1441 砝碼稱重 dfs列舉 01揹包 2018.8.26 上午 參加模擬賽 下午 1.ac...

8 25 9 25 做題記錄

2018.8.25 上午 1.ac 洛谷p1514引水入城 搜尋 貪心 2.ac 洛谷p3918 國家集訓隊 特技飛行 貪心 下午 3.ac 洛谷p1120 小木棍 資料加強版 搜尋 剪枝 4.ac 洛谷p1441 砝碼稱重 dfs列舉 01揹包 2018.8.26 上午 參加模擬賽 下午 1.ac...