题解 2665: 蓝桥杯2022年第十三届省赛真题-选数异或

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯2022年第十三届省赛真题-选数异或

解题思路:输入所需数据,分别用两组数组存储数列和检查值。check方法的逻辑是:创建一个HashSet对象set,遍历数组a的指定范围[l,r],对于每个元素a[i],检查set中是否已经存在一个元素与a[i]异或后等于x。如果存在,则返回true;否则,将a[i]添加到set中。

蓝桥杯2022年第十三届省赛真题-选数异或-暴力解法+以空间换时间

●本题如果纯纯直接暴力逐个枚举遍历会超时,只能拿64分,所以可以**将已经判断过的区间保存起来加以利用**,以空间换时间,加快代码执行效率。●用两个List将已经枚举得到结果后的区间分别保存起来,分别保存为yesList,noList,分别存储区间中含有/不含有异或值为x的区间;●由分析可知:1.当*

二分+哈希表

解题思路:利用哈希表存储数据的位置,然后利用二分法减少时间复杂度,空间换时间。注意事项:注意数据的存储结构参考代码:importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannerscan=newScanner(S