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 翻译