在下面的代码中
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;
}
- 3 回答
- 0 关注
- 2330 浏览
添加回答
举报
0/150
提交
取消