在下面的代码中 map<long long, long long> mm;// long long mm[maxn]; 不可以替换 为什么? 我一点都不懂map的用法,最好还能给个链接指导一下(我百度完没看懂呀) 谢谢! #include<stdio.h> #include<algorithm> #include<iostream> #include<map> using namespace std; #define maxn 100005 long long sz[maxn]; int main() { long long n, x; long long key, cnt; while (scanf("%I64d %I64d", &n, &x) == 2) { key = 0; cnt = 0; map<long long, long long> mm;// long long mm[maxn]; for (int i = 0; i<n; i++) { scanf("%I64d", &sz[i]); mm[sz[i]]++; } for (int i = 0; i<n; i++) { cnt = x^sz[i]; if (cnt == sz[i]) key += mm[cnt] - 1; else key += mm[cnt]; } cout << key / 2 << endl; } return 0; }
眼前的黑不是黑zz
相关分类