定义变换函数: 将一个正整数 用其二进制表示中 的个数替换,记作 (即 ); 给定两个长度均为 的正整数数组 和 ; 你可以对 或 中的任意元素反复执行以下操作,每次操作计数 : 将该元素 替换为 ; 当且仅当存在置换 ,使得对所有 都有 ,也就是两个数组都排序后完全相同,我们称 与 同构。请计算使 与 同构所需的最少操作次数。 可以证明题目一定有解。
输入描述:
第一行输入一个整数 ,表示测试用例数; 每个测试用例输入格式如下: 第一行输入一个整数 ; 第二行输入 个整数 ; 第三行输入 个整数 ; 保证所有测试用例中 。


输出描述:
对于每个测试用例,输出一行整数——使 与 同构的最少操作次数。
示例1

输入

2
3
4 1 2
2 2 1
3
7 3 5
3 3 5

输出

2
1

说明

\hspace{23pt}\bullet\,初始时,A=\{4,1,2\},\ B=\{2,2,1\}
\hspace{23pt}\bullet\,A 中元素 4 执行一次变换,得到 g(4)=1,此时 A=\{1,1,2\}
\hspace{23pt}\bullet\,B 中一个元素 2 执行一次变换,得到 g(2)=1,此时 B=\{1,2,1\}
\hspace{23pt}\bullet\,此时两数组的元素可以一一匹配,故最少操作数为 2

\hspace{15pt}在第二个测试用例中:仅需将 A 中的 7 变换为 g(7)=3,得到 A=\{3,3,5\},与 B 相同,操作数为 1
加载中...