[SDOI2017] 序列计数

[SDOI2017] 序列计数

题目信息

题目链接

LGP3702LOJ2002

题目描述

Alice 想要得到一个长度为 \(n\) 的序列,序列中的数都是不超过 \(m\) 的正整数,而且这 \(n\) 个数的和是 \(p\) 的倍数。

Alice 还希望,这 \(n\) 个数中,至少有一个数是质数。

Alice 想知道,有多少个序列满足她的要求。

输入格式

一行三个数,\(n,m,p\)

输出格式

一行一个数,满足 Alice 的要求的序列数量,答案对 \(20170408\) 取模。

样例 #1

样例输入 #1

3 5 3

样例输出 #1

33

数据范围

\(20\%\) 的数据,\(1\leq n,m\leq100\)

\(50\%\) 的数据,\(1\leq m \leq 100\)

\(80\%\) 的数据,\(1\leq m\leq 10^6\)

\(100\%\) 的数据,\(1\leq n \leq 10^9,1\leq m \leq 2\times 10^7,1\leq p\leq 100\)

抽象题目

\(n\) 个变量 \(x_1,x_2,\ldots,x_n\),并且 \(x_i \le m\),求 \(\sum x_i\equiv 0(\text{mod}\ p)\) 的方案数。

思路

Alice 还希望,这 n 个数中,至少有一个数是质数。

这句话很经典,这样的话就会考虑到容斥和莫比乌斯函数。

设计状态 \(f(x)\) 表示用了 \(n\) 个数,最后乘积\(x\) 的方案数。

posted @ 2024-05-28 21:48  GuTongXing  阅读(20)  评论(1)    收藏  举报