1、大意做法
首先发现, DP 的统计方案数中,「至少一个质数」的条件不容易直接 DP ,但是「不含任意一个质数」的条件容易 DP 。所以这里使用容斥原理,用总方案数减去不含任意一个质数的方案数。
2、预处理
cnt0,cnt1,cnt2,...cntp−1 分别为 1...m 的数中模 p 为
pri0,pri1,pri2,...prip−1 分别为 1...m 的数中的合数模 p 为
3、建立朴素DP
设 f[i][j] 表示 i 个数的序列,总和模
可以推出
f[i][j]=∑p−1k=0(f[i−1][(j−k+p)modp]∗cntk)
g[i][j]=∑p−1k=0(g[i−1][(j−k+p)