hdu 4022(map一对多)
来源:互联网 发布:视频放慢软件手机软件 编辑:程序博客网 时间:2024/05/29 03:37
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4022
STL应用,一开始用multimap写的,然后实现不了,于是就看了别人用map自定义了一个一对多。。。orz。。。
剩下的就简单了。。分别用两个这样的map容器装下 x为键,y为值,和y为键,x为值的两个容器。 然后当C==0就输出当键位d的容器大小,并且去掉另一个容器中出现的点。
同理C==1一样。
View Code
1 #include<iostream> 2 #include<map> 3 #include<set> 4 const int N=100010; 5 using namespace std; 6 int n,m; 7 typedef map<int,multiset<int> >mp; 8 multiset<int>::iterator iter; 9 10 int main(){11 while(~scanf("%d%d",&n,&m)){12 if(n==0&&m==0)break;13 mp mp1,mp2;14 int x,y,c,d,_count;15 for(int i=0;i<n;i++){16 scanf("%d%d",&x,&y);17 mp1[x].insert(y);18 mp2[y].insert(x);19 }20 for(int i=0;i<m;i++){21 scanf("%d%d",&c,&d);22 _count=0;23 if(c==0){24 _count=mp1[d].size();25 for(iter=mp1[d].begin();iter!=mp1[d].end();iter++){26 mp2[*iter].erase(d);27 }28 mp1[d].clear();29 }else if(c==1){30 _count=mp2[d].size();31 for(iter=mp2[d].begin();iter!=mp2[d].end();iter++){32 mp1[*iter].erase(d);33 }34 mp2[d].clear();35 }36 printf("%d\n",_count);37 }38 printf("\n");39 }40 return 0;41 }
0 0
- hdu 4022(map一对多)
- hdu 4022 map的一对多实现 map和set的结合应用
- Map一对多映射!
- uva 11991 Easy Problem(map一对多)
- java map list实现一对多
- Map扩展一对多的使用
- Hibernate中map的研究之:一对多及节点中的inverse的研究(一)
- Hibernate一对多使用Map和Set的区别
- List、map结合查询一对多的所有记录应用
- hibernate中Map类型的双向一对多映射
- Java-Map集合的应用-一对多的映射…
- hibernate中Map类型的双向一对多映射
- Gson使用三(Map集合的处理,一对多处理)
- HDU 4022 Bombing (map + multiset)
- 【map】【multiset】hdu 4022
- map hdu 4022 Bombing
- hdu 4022 map
- hdu 1004 (map)
- org.eclipse.persistence.internal.helper.DatabaseTable local class incompatible
- hdu 2845(最大不连续子序列)
- hdu 2191(多重背包)
- hdu 1114(完全背包)
- hdu 1024(滚动数组的学习)
- hdu 4022(map一对多)
- EVB框架
- hdu 4393(优先队列)
- hdu 1261(排列组合)
- dede首页调用顶级栏目单页内容(如公司简介)及名称和链接的方法
- hdu 1251+hdu 1671(字典树)
- hdu 1081(最大子矩阵)
- hdu 1559(最大子矩阵)
- hdu 3127(矩阵切割)