#P6280. [USACO20OPEN] Exercise G

    ID: 5283 远端评测题 2000ms 250MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>动态规划,dp2020USACO素数判断,质数,筛法

[USACO20OPEN] Exercise G

题目描述

Farmer John(又)想到了一个新的奶牛晨练方案!
如同之前,Farmer John 的 NN 头奶牛站成一排。对于 1iN1\le i\le N 的每一个 ii,从左往右第 ii 头奶牛的编号为 ii。他告诉她们重复以下步骤,直到奶牛们与她们开始时的顺序相同。

给定长为 NN 的一个排列 AA,奶牛们改变她们的顺序,使得在改变之前从左往右第 ii 头奶牛在改变之后为从左往右第 AiA_i 头。
例如,如果 A=(1,2,3,4,5)A=(1,2,3,4,5),那么奶牛们总共进行一步。如果 A=(2,3,1,5,4)A=(2,3,1,5,4),那么奶牛们总共进行六步。每步之后奶牛们从左往右的顺序如下:

0 步:(1,2,3,4,5)(1,2,3,4,5)
1 步:(3,1,2,5,4)(3,1,2,5,4)
2 步:(2,3,1,4,5)(2,3,1,4,5)
3 步:(1,2,3,5,4)(1,2,3,5,4)
4 步:(3,1,2,4,5)(3,1,2,4,5)
5 步:(2,3,1,5,4)(2,3,1,5,4)
6 步:(1,2,3,4,5)(1,2,3,4,5)
求所有正整数 KK 的和,使得存在一个长为 NN 的排列,奶牛们需要进行恰好 KK 步。

由于这个数字可能非常大,输出答案模 MM 的余数(108M109+710^8\le M\le 10^9+7MM 是质数)。

输入格式

输入的第一行包含 NNMM

输出格式

输出一个整数。

5 1000000007
21

提示

样例解释:

存在排列使得奶牛需要进行 1122334455 以及 66 步。因此,答案为 1+2+3+4+5+6=211+2+3+4+5+6=21


对于 100%100\% 的数据,1N1041\le N\le 10^4

1010 个测试点,其中 11 为样例,其余性质如下:

测试点 252\sim 5 满足 N102N\le 10^2
测试点 6106\sim 10 没有额外限制。


出题人:Benjamin Qi