[bzoj3462]DZY Loves Math II (美妙数学+背包dp)

Description

Input

第一行,两个正整数 S 和 q,q 表示询问数量。
接下来 q 行,每行一个正整数 n。

Output

输出共 q 行,分别为每个询问的答案。

Sample Input

30 3
9
29
1000000000000000000

Sample Output

0
9
450000036

HINT

感谢the Loser协助更正数据

对于100%的数据,2<=S<=2*10^6,1<=n<=10^18,1<=q<=10^5

这个题面让人很费解啊

其实题意还是挺简洁的

首先对S分解质因数

如果有相同的因数出现了多次,那么$lcm(p_1,p_2,p_3...p_k)=S$一定不能被满足

此时直接特判输出Q个0即可

(这10分这么好拿还想什么正解hhh)

接下来要做的,是取一定数量的每个$p_i$,使他们的和为$n$

假设$n=\sum{p_i*c_i}$,即$p_i$对应取$c_i$个

由$p_i$是S的因数,可得$p_i*c_i$一定可以表示成$X*S+Y*p_i$

将$p_i$除过去,得到$c_i=X*\frac{S}{p_i}+Y$

猜你喜欢

转载自www.cnblogs.com/Rorschach-XR/p/11123193.html