题目链接
做法
先判断有无解( $ L \mod G = 0 $ ),然后将 $ n /= G, L /= G $ 。
由于 $ n \leq 1e8 $ ,所以每个数最多有 $ 8 $ 个不同的质因数。
令 $ L = p_{1}^{a_1}p_{2}^{a_2} \dots p_{t}^{a_t} $ ,则素数 $ p_i $ 的指数上界为 $ a_i $ 。
由题意得对于每个质因数所选的数既有恰好达到上界,由于恰好为下界的。由于状态数为 $ 16 $ ,所以可以状压。
可以通过 $ dfs $ 处理出所有 $ x $ 使得 $ x \leq n $ 且 $ x = p_{1}^{b_1}p_{2}^{b_2} \dots p_{t}^{b_t} (b_i \leq a_i) $ ,然后将 $ x $ 分类统计。
于是问题转化为给出一个集合,求或为全集的方案数。
设 $ f_s $ 表示或为 $ s $ 的方案数。
设 $ g_s = \sum_{i \in s} f_i = 2^{cnt_s} - 1 $ 表示或为 $ s $ 子集的方案数。
容斥得 $ f_s = \sum_{i \in s} (-1)^{|s| - |i|} g_i $ 。
1 |
|