1. 程式人生 > >[jzoj 6084] [GDOI2019模擬2019.3.25] 禮物 [luogu 4916] 魔力環 解題報告(莫比烏斯反演+生成函數)

[jzoj 6084] [GDOI2019模擬2019.3.25] 禮物 [luogu 4916] 魔力環 解題報告(莫比烏斯反演+生成函數)

tex math htm clas bottom show get 直接 -m

題目鏈接:

https://jzoj.net/senior/#main/show/6084

https://www.luogu.org/problemnew/show/P4916

題目:

技術分享圖片

題解:

我們設$f(x)$表示最小循環節長度為x的合法序列數,那麽有$ans=\sum_{d|gcd(n,m)}\frac{1}{d}f(d)$

這是因為最小循環節為d的序列對應的環會被計算d次,比如

  • 0101,最小循環節長度為 2(循環節為 01),其對應的環會被統計 2 次(序列 0101 與 1010)
  • 0111,最小循環節長度為 4(循環節為 0111),其對應的環會被統計 4 次(序列 0111,1011,1101,1110)
  • 1111,最小循環節長度為 1(循環節為 1),其對應的環會被統計 1 次(序列 1111)

直接求$f(x)$並不好求,我們令$g(x)=\sum_{d|x}f(d)$,即$g(x)$表示最小循環節是x的因子的合法序列的個數。那麽可以莫比烏斯反演來求$f(x)$,$f(x)=\sum_{d|x}\mu(d)g(\frac{x}{d})$

[jzoj 6084] [GDOI2019模擬2019.3.25] 禮物 [luogu 4916] 魔力環 解題報告(莫比烏斯反演+生成函數)