首页 > 试题广场 >

#include us...

[单选题]
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
map <int, int> xs;
map <int, int> ys;
map < pair <int, int>, int > zs;
long long ans = 0;
for (int i = 0; i < n; i++) {
int x, y;
scanf("%d %d", &x, &y);
ans += (xs[x]++);
ans += (ys[y]++);
ans -= (zs[make_pair(x, y)]++);
}
cout << ans << endl;
return 0;
}
输入:
6
0 0
0 1
0 2
-1 1
0 1
1 1
则上述程序输出为( )
  • 9
  • 10
  • 11
  • 12
先画一个表:
x: 0, 0, 0, -1, 0, 1
[x]: 0, 1, 2, 0, 3, 0
y: 0, 1, 2, 1, 1, 1
[y]: 0, 0, 0, 1, 2, 3
[(x, y)]只有两次一样,是0, 1时,
第一次为0,第二次为1,
所以
1+2+3+1+2+3-1 = 11
发表于 2019-10-14 16:29:08 回复(0)
搞不明白就选C
发表于 2019-09-14 00:28:45 回复(0)