定义f(x)为十进制整数x的长度。
现给定两个长度都为n的整数数组a和b,在一次操作中,您可以执行以下操作:
(1) 从1到n中任选一个整数i,将f(ai)赋值给ai或者将f(bi)赋值给bi;
如果可以通过重新排列两个数组中的元素,使它们相等(即对于从1到n的所有i, 都有ai =bi),则认为两个数组彼此相似。
请问,你至少需要多少次操作才能使得数组a和数组b相似?
定义f(x)为十进制整数x的长度。
现给定两个长度都为n的整数数组a和b,在一次操作中,您可以执行以下操作:
(1) 从1到n中任选一个整数i,将f(ai)赋值给ai或者将f(bi)赋值给bi;
如果可以通过重新排列两个数组中的元素,使它们相等(即对于从1到n的所有i, 都有ai =bi),则认为两个数组彼此相似。
请问,你至少需要多少次操作才能使得数组a和数组b相似?
第一行只有一个整数t(1≤t≤10000):测试用例的数量。
接下来共3t行,每个测试用例3行:
第一行一个整数n(2≤n≤2e5):数组a和数组b的长度。
第二行共n个整数a1,a2,a3,……,an(1≤ai<1e9 ):数组a中n个元素的值。
第三行共n个整数b1,b2,b3,……,bn(1≤bi<1e9 ):数组b中n个元素的值。
共t行,每个测试用例一行一个整数:使得数组a和数组b相似所需要的最少操作次数。
4 1 1 1000 4 1 2 3 4 3 1 4 2 3 2 9 3 1 100 9 10 75019 709259 5 611271314 9024533 81871864 9 3 6 4865 9503 2 371245467 6 7 37376159 8 364036498 52295554 169
2 0 2 18
在第一个测试用例中,可以对b执行两次操作:(1) f(1000)=4; (2) f(4)=1;此时数组b与数组a相似,最少操作次数为2次;
在第二个测试用例中,数组a与b已经相似,最少操作次数为0;
在第三个测试用例中,(1)先对a1执行操作1次,f(a1)=f(2)=1; (2)再对b2执行操作次数1次,f(b2)=f(100)=3; 此时数组a为:[1,9,3],数组b为:[1,3,9],两个数组相似,所以所需要的最少操作次数为2次;