[2018 FJ 省隊集訓 Day6][校內訓練]傳統題(組合數學妙題)
阿新 • • 發佈:2019-01-13
Meaning
- 一個長度為 的序列,每個位置可以被染成 中的任一顏色
- 求所有 種染色方案的最長連續同色子段長度之和
- 答案對 取模
- 為質數
- 時限 2s
- 空限 1G
Solution - Step 1
- 神仙 zzq 的題思路果然非常巧妙
- 我們知道,對於值域為非負整數的函式 ,有
- 回到問題。直覺告訴我們,這是與最值有關的計數問題
- 所以根據上面的式子進行轉化可以簡化問題
- 其中 表示一種染色方案, 表示染色方案 的最長連續同色子段長度
- 容易得出 表示最長連續同色子段長度 的方案數
- 「最大值 」還是不好處理,考慮補集轉化一下
- 於是
- 發現 實際上就是把長度為 的序列分成若干段,每段長度都不超過 ,最後給每段染上 內的顏色,相鄰段不能染同色的方案數
- 先列舉段數
- 如果我們已經確定了劃分方案,那麼染色方案數顯然是
- 然後如果沒有每段長度不超過 的限制,那麼劃分方案數為
- 如果加上了限制,我們可以考慮容斥
- 即考慮 段中的一部分段,讓這些段的長度強行超過
- 也就是
- 其中 為容斥係數, 表示 段中選 段讓這些段長度強行超過 ,