計數/容斥亂做
容斥題可以手玩n比較小的情況,然後就大腦升級力,,,
「SHOI2015」超能粒子炮・改
考慮Lucas定理,直接按餘數分下類就能遞歸了
「HAOI2017」方案數
容斥,考慮枚舉第一個經過的障礙物,直接減就行了,就像容斥和莫比烏斯反演的關係一樣,\(n^2\)就沒必要求容斥係數。
「FJOI2017」矩陣填數
\(2^n\)容斥枚舉哪些塊是\(<v\),哪些塊\(\leq v\),容斥係數即爲\(-1^{小於v的塊數}\)
具體實現可以離散化,n個矩形把矩陣分成了\(n^2\)個部分直接計算
「TJOI2019」唱、跳、rap 和籃球
容斥枚舉\(abcd\)有多少個,我不會組合數,可以\(O(n^2)\)dp出來這一部分的方案數。然後計算把剩下的分配一下的方案數,就是四個EGF捲起來,還是比較簡單的。(然而我最開始算的OGF調了半天)
「CTSC2017」吉夫特
\(a_{b_i}\) 必然是 \(a_{b_i-1}\) 二進制上的超集,分塊,設 \(dp[x][y]\) 爲前九位爲 \(x\) ,後九位爲 \(y\) 的子集的方案數,每次就只用枚舉一半,隨機\(a_i\)的情況下很快。
「LibreOJ NOI Round #2」不等關係
講課講的經典套路題,樓下細🔒。
先手玩小情況,考慮\(a>b>c<d\),它就等於\((a>b\ ?\ c<d)-(a\ ?\ b<c<d)+(a<b<c<d)\)
於是我們枚舉變成\(<\)的\(>\)有多少個,容斥係數很顯然,最後用個分治NTT。
放樹上也能做到\(n^2\),就是一個樹揹包,不過沒法多項式。
CF838D
考慮加一個位置,然後最後每個位置有沒有人都是等價的,所以用概率分析就做完了。
「HAOI2018」染色
最開始自己推的有一點小問題,原因是這題有兩個恰好,要搞清楚對哪個恰好二項式反演
所以欽定了\(i\)種顏色之後這\(i\)種顏色就不再用了,我們對顏色種數而不是出現次數二項式反演。
二項式反演可得:
一遍NTT就做完了,這個要反着卷。預處理階乘最好直接到maxn啊啊啊啊啊WA了好幾回
付公主的揹包
這種不能直接乘的可以取ln加起來,取完ln後的形式可以用泰勒展開分析,之前寫過。
「SDOI2017」遺忘的集合
考慮知道S計算f就是上面的東西,考慮形式化表示這東西,設\(a_i\)表示S中有沒有\(i\),則
那麼把\(f\)取ln,枚舉什麼j可以產生貢獻,可以得到
莫比烏斯反演即可得到\(a_i\),這題還要MTT求\(\ln\)噁心的很。
ODE
一直不擅長這個,就是expln的意義啥的
斐波那契
設 \(F(i)\) 表示第 \(i\) 個斐波那契數,給定 \(n\),考慮所有正整數序列 \({ai}\) 使得 \(a_1+a_2+…+a_m=n\),求所有方案下 \(F(a1)*F(a2)*…*F(am)\) 的和。
設斐波那契數列是\(f\),答案\(g=1+f+f^2+\cdots=\frac{1}{1-f}=\frac{1-x-x^2}{1-2x-x^2}\)
然後要用生成函數解遞推式,考慮把分母乘到左邊,
可以想象是後面都消掉了只剩前三項,那麼可以得到第三項後的遞推式\(g[i]=2*g[i-1]+g[i-2]\)
我們設前三項的係數是\(a,b,c\),那麼有
解得
就可以矩陣快速冪了。
luoguP4705 玩遊戲
這個題可以轉化成數列k次方和,
考慮數列k次方和的答案的生成函數爲:
這樣己經可以分治 NTT 了,通分之後同時維護分子分母即可。
吐了,我再用vector寫任何多項式算法立馬喫屎