hdu4022 Bombing stl(map+set)

来源:互联网 发布:淘宝 gsc店铺 编辑:程序博客网 时间:2024/06/06 03:00

The 36th ACM/ICPC Asia Regional Shanghai Site —— Online Contest

题意:轰炸机轰炸基地,一颗炸弹炸一排或一行,按顺序输出每个轰炸机轰炸基地的个数。

map+set 除了代码短,时空复杂度都高,囧~要用其他方法做做。

#include <iostream>#include <set>#include <map>using namespace std;typedef map<int, multiset<int> > M_TYPE;int ans[100002], id;void pop(M_TYPE &a, M_TYPE &b, int key){    ans[id++] = a[key].size();for(multiset<int>::iterator it = a[key].begin(); it != a[key].end(); it++)b[*it].erase(key);a[key].clear();}int main(){int n, m, x, y, i;    while(scanf("%d%d", &n, &m)){if(!n && !m) break;        M_TYPE xy, yx;id = 0;for(i = 0; i < n; i++){    scanf("%d%d", &x, &y);xy[x].insert(y);yx[y].insert(x);}for(i = 0; i < m; i++){scanf("%d%d", &x, &y);if(x == 0)   pop(xy, yx, y);else   pop(yx, xy, y);}for(i = 0; i < m; i++)printf("%d\n", ans[i]);printf("\n");}return 0;}


代码参考这儿的:http://blog.csdn.net/xymscau/article/details/6768228

原创粉丝点击