思路: 若a^b=c 则有a^c=b且b^c=a
用cnt数组记录下之前出现过的次数
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <cmath>
#include <vector>
#define max_ 100010
#define inf 0x3f3f3f3f
#define ll long long
using namespace std;
int cnt[max_];
int main(int argc, char const *argv[])
{
int i,n,k;
scanf("%d%d",&n,&k);
ll ans=0;
for(i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
int t=x^k;
if(t<=max_)
{
ans+=cnt[t];
cnt[x]++;
}
}
printf("%lld\n",ans);
return 0;
}