CFCF2170F.Build XOR on a Segment
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的整数数组 a1,a2,…,an,其中所有数字均在 1 到 212−1 范围内。
你需要处理 q 次询问。每次询问由三个整数 li,ri,xi 定义:你需要找到一个最小集合 S={s1,s2,…,sk},满足以下条件:
- 每个 sj 等于 ali,ali+1,…,ari 这个子数组中的某个元素;
- s1⊕s2⊕⋯⊕sk=xi,其中 ⊕ 表示按位异或运算。
输入格式
第一行包含一个整数 n(2≤n≤104)。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤212−1)。
第三行包含一个整数 q(1≤q≤106)。
接下来 q 行,每行包含三个整数 li,ri,xi(1≤li≤ri≤n,1≤xi≤212−1)。
输出格式
对于每个询问,输出一个整数,表示所需集合的最小大小。如果不存在这样的集合,则输出 0。
输入输出样例
输入#1
7 3 5 4 1 7 3 1 5 1 3 1 1 4 1 1 3 2 4 7 5 1 7 8
输出#1
2 1 3 3 0
说明/提示
考虑示例中的询问:
- 对于第一个询问,可以选择 S={5,4};
- 对于第二个询问,可以选择 S={1};
- 对于第三个询问,可以选择 S={4,3,5};
- 对于第四个询问,可以选择 S={1,3,7}。