题目链接 :http://codeforces.com/contest/742/problem/B
题意:给你n个数和一个x,问你n个数中有几对(ai , aj)的xor值为x,而且j>i。
题目比较简单看一下代码就会秒懂了。还有要注意结果用longlong来存。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int M = 1e5 + 10;
const int mmax = 3e6;
int a[M] , b[mmax];
int main() {
int n , x;
scanf("%d%d" , &n , &x);
for(int i = 1 ; i <= n ; i++) {
scanf("%d" , &a[i]);
b[a[i]]++;
}
long long count = 0;
for(int i = 1 ; i <= n ; i++) {
b[a[i]]--;
if(b[x ^ a[i]]) {
count += b[x ^ a[i]];
}
}
printf("%lld\n" , count);
return 0;
}