Carousel of Combinations

由圆排列的公式,不难有\(C(n,k)=(_k^n)\times \frac{k!}{k}\)

于是答案为\(\sum_{i=1}^{n}\sum_{j=1}^{i}((_j^i)\cdot (j-1)!)mod\space j\)

显然交换求和次序,有\(\sum_{i=1}^{n}\sum_{j=i}^{n}((_i^j)\cdot (i-1)!)mod\space i\)

由威尔逊定理可将\(i\)限定在质数和\(4\)之中,再由卢卡斯定理(这个一定要手写写出来才会发现很容易化简,比赛的时候就觉得可以用程序去算就没有化简,从而导致根本没办法往下面做,所以以后遇到公式了一定要手写写出来)可化简为\(\sum_{i=1}^{n}\sum_{j=i}^{n}(\lfloor\frac{j}{i}\rfloor\cdot (i-1))mod\space i\)

补题的时候一直想的是每个\(i\)对整体的贡献,但是题解告诉我们也可以考虑\(i\)对特定局部的贡献,最后将所有局部汇总就好了

具体来说,这里反过去考虑\(\sum_{i=1}^{n}\sum_{j=1}^{i}((_j^i)\cdot (j-1)!)mod\space j\),设\(dp[i]=\sum_{j=1}^{i}((_j^i)\cdot (j-1)!)mod\space j\),再考虑\(\sum_{i=1}^{n}\sum_{j=i}^{n}(\lfloor\frac{j}{i}\rfloor\cdot (i-1))mod\space i\),统计每个\(i\)\(dp\)数组的贡献(枚举倍数利用差分),时间复杂度为\(O(n \ln n)\)

update 2024.8.10

重新做了一遍,做出来了

威尔逊定理:

image

只要对威尔逊定理足够熟悉就好了

然后还要注意最开始不要直接对\(C(n,k)\)进行化简,因为我们对化简之后的式子不熟悉,所以不能化简,不化简就可以出现威尔逊定理的形式

然后是统计答案的部分

对于某一特定的\(n\)

\(4\)对其的贡献:

\[\overset{n}{\underset{j=4}{\sum}}\frac{j(j-1)(j-2)(j-3)}{4}3^{-1}\mod \space 4 \]

质数\(p\)对其的贡献:

\[\overset{n}{\underset{j=p}{\sum}}(p-1)\binom{j}{p}\mod p\\=\overset{n}{\underset{j=p}{\sum}}(p-\binom{j}{p}\mod p)\mod p \]

,这个贡献好好算一下,第二行一定要记住有两个\(\mod p\)而不是只有一个

两个部分都可以用差分数组维护(其中质数的贡献的差分数组要求两次前缀和)

posted @ 2024-07-19 22:12  最爱丁珰  阅读(1)  评论(0编辑  收藏  举报