Carousel of Combinations

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

于是答案为 ∑ i = 1 n ∑ j = 1 i ( ( j i ) ⋅ ( j − 1 ) ! ) m o d j \sum_{i=1}^{n}\sum_{j=1}^{i}((_j^i)\cdot (j-1)!)mod\space j ∑i=1n∑j=1i((ji)⋅(j−1)!)mod j

显然交换求和次序,有 ∑ i = 1 n ∑ j = i n ( ( i j ) ⋅ ( i − 1 ) ! ) m o d i \sum_{i=1}^{n}\sum_{j=i}^{n}((_i^j)\cdot (i-1)!)mod\space i ∑i=1n∑j=in((ij)⋅(i−1)!)mod i

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

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

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

相关推荐
灵感__idea11 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
Wect21 小时前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
NAGNIP1 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
颜酱2 天前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub2 天前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
NAGNIP2 天前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试