CF1632C Strange Test
题目描述
伊戈尔是十一年级的学生。明天他将要参加全校最严格的老师 Pavel Denisovich 的信息学考试。
伊戈尔已经知道考试的流程:首先,老师会给每个学生两个正整数 $a$ 和 $b$($a < b$)。之后,学生可以任意次数地进行以下操作:
- $a := a + 1$(将 $a$ 增加 $1$);
- $b := b + 1$(将 $b$ 增加 $1$);
- $a := a \mid b$(将 $a$ 替换为 $a$ 和 $b$ 的按位或运算结果)。
要想获得满分,学生需要告诉老师使 $a$ 和 $b$ 相等所需的最少操作次数。
伊戈尔已经知道老师会给他哪些数字。请你帮他计算,使 $a$ 等于 $b$ 所需的最少操作次数。
输入格式
每组测试数据包含多个测试用例。第一行包含测试用例数量 $t$($1 \le t \le 10^4$)。接下来的每组测试用例,每组一行,包含两个整数 $a$ 和 $b$($1 \le a < b \le 10^6$)。
保证所有测试用例中 $b$ 的总和不超过 $10^6$。
输出格式
对于每个测试用例,输出一个整数,表示使 $a$ 和 $b$ 相等所需的最少操作次数。
说明/提示
在第一个测试用例中,最优的做法是使用第三种操作。
在第二个测试用例中,最优的做法是将第一种操作执行三次。
在第三个测试用例中,最优的做法是先执行第二种操作,再执行第三种操作。
由 ChatGPT 4.1 翻译