CF159B 题解
思路
根据题意,既然优秀的配对是要颜色和大小都相等,不妨二元化一元,考虑哈希,
普通的配对要记录每根笔的大小,如果大小相同,就是普通的配对。
时间复杂度:
CODE
#include<bits/stdc++.h>
#define M 100007
using namespace std;
int n,m,s,c;
int Size[M];
map<int,int> Color;
int ans1,ans2;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>c>>s;
Size[s]++;
Color[c+(s*M)]++; // 哈希
}
for(int i=1;i<=m;i++){
cin>>c>>s;
if(Size[s]) ans1++; // 普通的配对
if(Color[c+(s*M)]) ans2++,Color[c+(s*M)]--; // 优秀的配对,注意,要把这只笔删掉,防止重复
}
cout<<ans1<<' '<<ans2;
return 0;
}