CF1875C Jellyfish and Green Apple

题目描述

水母有 $n$ 块青苹果,每块青苹果的重量为 $1~\text{kg}$。水母想要将这些青苹果平均分给 $m$ 个人。 水母有一把魔法刀。每次操作时,水母可以选择一块青苹果,将其分成两块更小的青苹果,每块的重量都是原来的一半。 水母想知道,最少需要多少次操作,才能将青苹果分成每个人获得的苹果总重量都相同。如果无法通过有限次操作实现平均分配,请输出 $-1$。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 2 \cdot 10^4$),表示测试数据组数。 接下来每组测试数据占一行,每行包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 10^9$),分别表示初始青苹果的数量和人数。

输出格式

对于每组测试数据,输出一个整数,表示将所有青苹果平均分给 $m$ 个人所需的最少操作次数。如果无法通过有限次操作实现平均分配,则输出 $-1$。

说明/提示

在第一个测试用例中,不需要分割苹果。每个人可以获得 $2$ 块 $1~\text{kg}$ 的苹果,每个人获得的苹果总重量为 $2~\text{kg}$。 在第二个测试用例中,无法通过有限次操作将苹果平均分配。 在第三个测试用例中,可以将两块 $1~\text{kg}$ 的苹果分割,得到 $4$ 块 $0.5~\text{kg}$ 的苹果。每个人可以获得 $1$ 块 $0.5~\text{kg}$ 的苹果和 $2$ 块 $1~\text{kg}$ 的苹果。每个人获得的苹果总重量为 $2.5~\text{kg}$。 在第四个测试用例中,首先将所有 $3$ 块 $1~\text{kg}$ 的苹果分割,得到 $6$ 块 $0.5~\text{kg}$ 的苹果。然后再将其中两块 $0.5~\text{kg}$ 的苹果分割,得到 $4$ 块 $0.25~\text{kg}$ 的苹果。每个人可以获得 $1$ 块 $0.5~\text{kg}$ 的苹果和 $1$ 块 $0.25~\text{kg}$ 的苹果。每个人获得的苹果总重量为 $0.75~\text{kg}$。 由 ChatGPT 4.1 翻译