码迷,mamicode.com
首页 > 其他好文 > 详细

hdoj 4022 Bombing(map的一对多)

时间:2015-08-05 20:22:57      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4022

map<int,<multiset<int> >通过嵌套实现一对多

 1 #include<stdio.h>
 2 #include<map>
 3 #include<set>
 4 const int MAXN = 100010;
 5 using namespace std;
 6 int main(){
 7     map<int,multiset<int> >xx,yy;
 8     int n, m;
 9     int x, y;
10     while(scanf("%d %d",&n,&m)){
11         for( int i = 0; i < n; ++i){
12             scanf("%d %d",&x,&y);
13             xx[x].insert(y);
14             yy[y].insert(x);
15         }
16         for( int i = 0; i < m; ++i){
17             scanf("%d %d",&x,&y);
18             if(x){//删除y=y的点
19                 printf("%d\n",yy[y].size());
20                 multiset<int>::iterator it = yy[y].begin();
21                 for(;it!=yy[y].end();++it)
22                     xx[*it].erase(y);
23                 yy[y].clear();
24             }
25             else{//删除x=y的点
26                 printf("%d\n",xx[y].size());
27                 multiset<int>::iterator it = xx[y].begin();
28                 for(;it!=xx[y].end();++it)
29                     yy[*it].erase(y);
30                 xx[y].clear();
31             }
32         }
33         if( !n && !m )
34             break;
35         else
36             printf("\n");
37     }
38 }

 

hdoj 4022 Bombing(map的一对多)

标签:

原文地址:http://www.cnblogs.com/blueprintf/p/4705579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!