小 Q 与彼岸花题意给你n个数,m组询问,让你求出每组询问中在区间[L,R]上两个数最大的异或值。思路昨天晚上以为时间复杂度为5e5,一直想不到思路,就没写出来。今天早上又看了一眼数据范围,是5e3...我们可以把所有的情况都预处理出来。我们可以用两层循环来枚举每一个区间[i,j].比如当前的区间是[1,5],我们的最大值就是区间[1,4]的最大值和a[5]和前面四个数异或的最大值的比较。然后用trie存储当前区间的值。trie存储每一个数的二进制位,就可以logn求出当前数和前面数的最大异或值然后每次转移就是ans[i,j]=max(ans[i][j-1],qurey[a[j]]).代码 #...