Educational Codeforces Round 88 (Rated for Div. 2) E(数学)
生活随笔
收集整理的這篇文章主要介紹了
Educational Codeforces Round 88 (Rated for Div. 2) E(数学)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Educational Codeforces Round 88 (Rated for Div. 2)E
題目大意: 給你n,k(1<=k<=n<=5e5),從1到n中選k個數組成一個嚴格遞增序列,如果對任何正整數,依次模上這k個數,無論這k個數如何排列得到的答案都相同,那么稱這個序列為好序列,求好序列的個數%998244353
思路: 最后的余數是和最小的那個數的位置有關的,通過打表發現其余數是最小數的倍數時,無論位置,最后的余數都相同。
所以我們利用組合數,枚舉最小的數i,然后從剩下的(n/i)-1個能整除i的數中隨意挑k-1個即可。
證明:
設ai是最小的數,當ai出現后,后面的數字必定大于余數,使用后面的余數不變。
ai前面的數,x=(nai)+m,則余數為n,當前面的數是ai的k倍數時,x=(n1kai)+n2ai+m.其中(n1kai)+n2ai=(nai)。所有最后的余數還是等于m,無論他們的位置如何。
代碼:
總結
以上是生活随笔為你收集整理的Educational Codeforces Round 88 (Rated for Div. 2) E(数学)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读书笔记怎么做读书笔记怎么做初中生
- 下一篇: Codeforces Round #65