题目链接 :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 " , count); return 0; }