本题的目标是:从长度为 n 的序列 a1,…,an 中选出若干元素构成非空子序列,使得该子序列所有元素的最大公约数(即核心值)恰好等于给定的正整数 k。求方案数对 109+7 取模的结果。
直接统计核心值恰好为 k 比较困难,我们可以借助倍数关系与容斥/递推的思想:
小蓝是一名密码学研究者,她提出了一个衡量数字序列“纯度”的指标。对于一个非空的整数集合,定义其核心值为集合中所有元素的最大公约数。现在她有一个长度为 n 的整数序列 a1,a2,...,an,她希望从中选出若干元素构成一个非空子序列,使得这个子序列的核心值恰好等于给定的正整数 k。请你计算有多少种不同的选取方案。方案数可能很大,请将答案对 109+7 取模。
序列长度 n 不超过 10^5,所有 ai 均为不超过 10^5 的正整数,目标核心值 k 也是不超过 10^5 的正整数。
第一行包含两个正整数 n 和 k,分别表示序列长度和目标核心值。 第二行包含 n 个正整数 a1,a2,...,an,表示序列中的元素。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册