1. CF398B
令$f[i][j]$表示已經有i行j列滿足條件是期望需要多少次,那麼只要枚舉下一個點的位置即可。
然後寫出來轉移,移項就可以得到$f[i][j]$的表達式。
2. CF605E
因爲可以原地不動,所以一個點必然會走到期望步數更少的點。
考慮給點按照期望步數排序,那麼假如確定了排名的序列,就可以遞推出所有點的期望。
所以考慮如何確定每個點的排名。枚舉排名,求出每個點假如在這個排名的期望,然後取最小的點安排在這個排名。
3.trip
由期望的線性性,顯然可以將貢獻分爲黑點和白點的。
對於黑點,轉移可以簡單的寫出來,化簡之後是可以進行dp的形式。
對於白點,只要計算經過每個白點的概率。
那麼可以看做去掉他的所有兒子,並且把這個點染黑。然後就轉化成了之前的問題。
只要考慮發生變化的東西即可。
4.期望逆序對
考慮計算每一對點的貢獻,那麼將所有位置分成三類,即在$i$,$j$或其他位置。
對於不在$i,j$的貢獻,容易發現在每個位置的概率相等,所以可以計算。
然後構造矩陣,快速冪可以求出貢獻,再套上線段樹即可計算所有點對貢獻。
5.CF838D
將所有位置看做一個環,並且新加入一個特殊點,那麼不合法的方案可以看做特殊點被選擇的方案。
那麼容易發現每個點不被選的概率相同,所以轉化一下題意就可以簡單計算了。
6.AGC002F
分情況討論,若k=1,那麼答案是1。
否則,考慮0的出現位置,假如第i個0出現了,那麼之後必然會出現i種顏色。
所以考慮dp,記錄當前一共幾個0和用了幾種顏色,轉移的時候考慮當前顏色在後面怎麼擺放即可,貢獻就是組合數。
7.CF995F
枚舉最終出現了多少種權值,最後貢獻乘上組合數。
考慮計算點權不超過某個數的方案數,可以簡單樹形dp得到。
然後容斥可以得到恰好用了$i$種數字的方案數。