思路: 考虑lowbit:取出最低位的1 异或:不同1,相同0 那么直接建一个trie,如果碰到相同的就往下走,如果有分叉,那么加上贡献 c o d e code code #include<iostream> #include<cstdio> using namespace std; unsigned long long mod=199907210507; long long n, tot=1ll; long long a[6010101]; lo