[AdditionalFile5571.zip](file://AdditionalFile5571.zip?type=additional_file)
#5571. 「ROIR 2026 Day2」XOR 着色
标签: 传统 | 时间限制: 2000 ms | 内存限制: 512 MiB |
题目描述
译自 ROI Regional 2026 Day2 T4. XOR Раскраска
给定两个非负整数数组 A=[a1,a2,…,an] 和 B=[b1,b2,…,bm]。
对于数组 A 中的每个元素 ai,定义集合 S(i)={j∣(ai⊕bj)≤x},即数组 B 中所有满足 ai 与 bj 的按位异或不超过 x 的下标 j 的集合。
要求找到最小的整数 k,使得能够用 k 种颜色给数组 A 的 n 个元素着色,满足:
如果两个集合 S(p) 和 S(q) 有非空交集(S(p)∩S(q)=∅),则元素 p 和 q 必须着不同颜色。
换句话说,构造着色方案 c1,c2,…,cn (1≤ci≤k),使得当 S(p)∩S(q)=∅ 时有 cp=cq。
按位异或(⊕,xor)的定义:将两个数写成二进制,某位结果为 1 当且仅当两个数在该位恰好有一个为 1。例如 14⊕7=9。
输入格式
输入包含多个测试数据。
第一行一个整数 t (1≤t≤100),表示测试数据数量。
接下来依次描述每组测试数据:
- 第一行三个整数 n,m,x (1≤n,m≤500000, 0≤x<230)
- 第二行 n 个整数 a1,…,an (0≤ai<230)
- 第三行 m 个整数 b1,…,bm (0≤bi<230)
保证所有测试数据的 n 之和以及 m 之和均不超过 500000。
输出格式
对每组测试数据输出一行一个整数,表示最小的 k。
样例
输入
3
2 2 0
0 0
1 1
5 5 3
0 1 2 3 4
0 1 2 3 4
5 5 4
0 1 2 3 4
0 1 2 3 4
输出
1
4
5
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 |
分值 |
附加限制 |
子任务依赖 |
| 1 |
5 |
n≤2 |
|
| 2 |
5 |
n≤5 |
1 |
| 3 |
5 |
n≤15 |
1,2 |
| 4 |
5 |
n≤100 |
1∼3 |
| 5 |
5 |
n≤2000 |
1∼4 |
| 6 |
10 |
n≤5000 |
1∼5 |
| 7 |
5 |
n≤100000, m=2 |
|
| 8 |
10 |
n≤100000, m=3 |
| 9 |
5 |
n,m≤100000;ai,bi,x<2 |
| 10 |
10 |
n,m≤100000;ai,bi,x<4 |
9 |
| 11 |
35 |
无附加限制 |
1∼10 |