刚入坑时写的一道题。
ZZULIOJ
求l到r的异或和,范围到1e18
套路:
1)求区间异或和,法斯特异或。(fast异或)
:郑轻22级新生C语言周赛(3)——命题人:宋江、张永林、张纪龙复盘_22级c语言考试,我的作答:_Kanna_STELLA的博客-CSDN博客
求0到n的异或和,存在规律
n%4 == 0 时,结果是n,
n%4 == 1 时,结果是1
n%4 == 2 时,结果是n+1
n%4 == 3 时,结果是0
分别算出0-l和0-r的异或和,
再把二者异或起来,even次数的元素抵消,最终得到
l~r的异或和。