Description
现在有正整数 n,有以下操作;
- 「ACCEPT」。花费 1 的代价,将 n 二进制按位或上 一个正整数。
- 「BOTH」。花费 1 的代价,将 n 二进制按位与上 一个正整数。
两种操作均可使用多次(或不用),请求出将 n 变为 m 最小的代价。
帮助:什么是按位与和按位或
本题有多组数据。
第一行一个正整数 T 表示数据组数。
接下来 T 行,每行两个正整数 n,m 以空格隔开。
输出 T 行,每行一个整数,表示答案。
3
1 1
4 5
1 4
0
1
2
Hint
样例解释
- 对于 n=1,m=1,不需要任何操作。
- 对于 n=4,m=5,一种可行的方案为使用「ACCEPT 1」。
- 对于 n=1,m=4,一种可行的方案为依次使用「ACCEPT 998,244,853」和「BOTH 14」。
数据规模与约定
本题开启捆绑测试。
| Subtask |
分值 |
T≤ |
n,m≤ |
| 0 |
30 |
100 |
| 1 |
70 |
2×105 |
1018 |
对于所有数据,1≤T≤2×105,1≤n,m≤1018。