摘要:
题意:给定 $n$ 个数 $a_i$($n,m \le 20$,$a_i,Y \le 10^{18}$),求 $[1,Y]$ 中满足恰好有 $m$ 个 $a_i$ 能整除 $x$ 的 $x$ 的个数。思路:利用容斥原理和二项式反演求解。设 $f_k$ 为恰好有 $k$ 个 $a_i$ 整除 $x$ 的 $x$ 的个数,$h_j$ 为所有大小为 $j$ 的子集 $S$ 对应的 $\lfloor Y / \text{lcm}(a_i, i \in S) \rfloor$ 之和。通过二项式反演,$f_m = \sum_{j \ge m} (-1)^{j - m} \binom{j}{m} h_j$。枚举所有非空子集,计算其元素的 lcm,结合子集大小和反演公式计算贡献,最终得到结果,时间复杂度为 $O(2^n n)$,可满足条件。 阅读全文
posted @ 2025-09-15 17:17
wing_heart
阅读(80)
评论(4)
推荐(0)

浙公网安备 33010602011771号