#208. 商余配对

商余配对

商余配对

【题目描述】

小灰灰有两个长度均为 nn 的数组 qq 和 rr,其中 qiq_i 为正整数,rir_i 为非负整数。另有一个正整数 kk。

一次操作中,可以从数组 qq 中选择一个尚未删除的数 aa,从数组 rr 中选择一个尚未删除的数 bb。如果存在两个正整数 x,yx,y,满足

y≤x≤ky\le x\le k

且 xx 除以 yy 的商为 aa、余数为 bb,那么可以将这两个数同时删除。

每个数最多只能被删除一次。请问最多可以删除多少对数?

本题包含多组测试数据。


【输入描述】

第一行输入一个正整数 TT,表示测试数据组数。

接下来依次输入 TT 组测试数据。对于每组测试数据:

第一行输入两个正整数 n,kn,k。

第二行输入 nn 个正整数 q1,q2,…,qnq_1,q_2,\ldots,q_n。

第三行输入 nn 个非负整数 r1,r2,…,rnr_1,r_2,\ldots,r_n。

保证:

  • 1≤T≤101\le T\le 10;
  • 1≤n≤2×1051\le n\le 2\times 10^5;
  • 2≤k≤10182\le k\le 10^{18};
  • 1≤qi≤1091\le q_i\le 10^9;
  • 0≤ri≤1090\le r_i\le 10^9;
  • 单个测试点内所有测试数据的 nn 之和不超过 2×1052\times 10^5。

【输出描述】

对于每组测试数据,输出一行一个整数,表示最多可以删除的数对数量。


【样例 1】

【样例 1 输入】

1
3 6
1 2 3
0 1 1

【样例 1 输出】

3

【样例 1 解释】

可以将 (a,b)=(2,1)(a,b)=(2,1) 配对,此时可取 y=2,x=5y=2,x=5。

可以将 (a,b)=(1,1)(a,b)=(1,1) 配对,此时可取 y=2,x=3y=2,x=3。

可以将 (a,b)=(3,0)(a,b)=(3,0) 配对,此时可取 y=1,x=3y=1,x=3。

因此最多可以删除 33 对。


【样例 2】

【样例 2 输入】

1
5 5
1 2 3 4 5
0 0 0 0 0

【样例 2 输出】

5

【样例 2 解释】

对于每个 aia_i,都可以选择 b=0,y=1,x=aib=0,y=1,x=a_i,且满足 1≤x≤51\le x\le 5,所以 55 对都能删除。


【样例 3】

见选手目录下的 Data/sample3.in 和 Data/sample3.ans。

该样例满足每组测试数据 n≤10n\le 10。


【样例 4】

见选手目录下的 Data/sample4.in 和 Data/sample4.ans。

该样例满足对所有 ii,均有 ri=0r_i=0。


【样例 5】

见选手目录下的 Data/sample5.in 和 Data/sample5.ans。

该样例满足对所有 ii,均有 qi=1q_i=1。


【样例 6】

见选手目录下的 Data/sample6.in 和 Data/sample6.ans。

该样例满足每组测试数据 n≤120n\le 120。


【样例 7】

见选手目录下的 Data/sample7.in 和 Data/sample7.ans。

该样例满足单个测试点内所有测试数据的 nn 之和不超过 50005000。


【样例 8】

见选手目录下的 Data/sample8.in 和 Data/sample8.ans。

该样例无特殊性质。


【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 2 10 每组测试数据 n≤10n\le 10
3 ~ 5 15 对所有 ii,均有 ri=0r_i=0
6 ~ 8 对所有 ii,均有 qi=1q_i=1
9 ~ 11 20 每组测试数据 n≤120n\le 120
12 ~ 14 单个测试点内所有测试数据的 nn 之和不超过 50005000
15 ~ 18 无

点击下载本题选手目录