本文主要是介绍HDU 4022 STL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// 使用map<int,multiset<int> > 实现一对多,因为会有重点,所以用multimap
#include<iostream>
#include<cstdio>#include<map>
#include<set>
using namespace std;
map<int,multiset<int> > cnt_x,cnt_y;
int main(){
int n,m;
while(scanf("%d%d",&n,&m),n+m){
cnt_x.clear();
cnt_y.clear();
for(int i=0;i<n;i++){
int x,y;
scanf("%d%d",&x,&y);
cnt_x[x].insert(y);
cnt_y[y].insert(x);
}
for(int i=0;i<m;i++){
int c,d;
scanf("%d%d",&c,&d);
multiset<int>::iterator it;
if(c){
printf("%d\n",cnt_y[d].size());
for(it=cnt_y[d].begin();it!=cnt_y[d].end();it++){
cnt_x[*it].erase(d);
}
cnt_y[d].clear();
}
else{
printf("%d\n",cnt_x[d].size());
for(it=cnt_x[d].begin();it!=cnt_x[d].end();it++){
cnt_y[*it].erase(d);
}
cnt_x[d].clear();
}
}
puts("");
}
}
这篇关于HDU 4022 STL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!