题意:
思路:
- 对于区间[l ,r]中要想找到两个数异或和为x,那么就要存在两个位置 p o s 1 , p o s 2 pos1,pos2 pos1,pos2满足 a p o s 1 = = a p o s 2 ⨂ x a_{pos1}==a_{pos2}\bigotimes x apos1==apos2⨂x,那么问题就变成了对于每一个位置找区间内是否存在对应另一个数。
- 考虑离线,对 r 排序,线段树的权值表示对于当前r,当前位置到r是否存在两数异或和为x。对于某一个位置 pos,如果前面出现过 a p o s 1 = = a p o s ⨂ x a_{pos1}==a_{pos}\bigotimes x a