HDU Bombing (STL multiset+map)

题意:给你 n 个坐标(x,y),m 个询问(c,d)

c==0,求出x==d有多少个,并删除这些点;

c==1,求出y==d有多少个,并删除这些点。

map+multiset的多重映射

#include<cstdio>
#include<stdlib.h>
#include<string.h>
#include<string>
#include<map>
#include<cmath>
#include<iostream>
#include <queue>
#include <stack>
#include<algorithm>
#include<set>
using namespace std;
#define inf 1e8
#define eps 1e-8
#define ll __int64
#define maxn 100001
#define mol 100007

map<int,multiset<int> > X,Y;
int main()
{
	int n,m;
	while(scanf("%d%d",&n,&m)&&n&&m)
	{
		int x,y,c,d;
		X.clear();
		Y.clear();
		//multiset<int>::iterator it;
		while(n--)
		{
			scanf("%d%d",&x,&y);
			X[x].insert(y);
			Y[y].insert(x);
		}
		while(m--)
		{
			scanf("%d%d",&c,&d);
			if(c==0)
			{
				multiset<int>::iterator it;
				printf("%d\n",X[d].size());
				for(it=X[d].begin();it!=X[d].end();it++)//删除x==d的y个数
					Y[*it].erase(d);
				X[d].clear();
			}
			else
			{
				multiset<int>::iterator it;
				printf("%d\n",Y[d].size());
				for(it=Y[d].begin();it!=Y[d].end();it++)//删除y==d的x个数
					X[*it].erase(d);
				Y[d].clear();
			}
		}
		printf("\n");
	}
	return 0;
}

HDU Bombing (STL multiset+map),布布扣,bubuko.com

时间: 2024-11-17 19:14:08

HDU Bombing (STL multiset+map)的相关文章

HDU 4022 Bombing(stl,map,multiset,iterater遍历)

题目 参考了     1     2 #define _CRT_SECURE_NO_WARNINGS //用的是STL中的map 和 multiset 来做的,代码写起来比较简洁,也比较好容易理解. //multiset可以允许重复 //multiset<int>::iterator it; 用来遍历 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream&g

AYITACM2016省赛第四周D-Gunner(STL,map)

Description Long long ago, there is a gunner whose name is Jack. He likes to go hunting very much. One day he go to the grove. There are $n$ birds and $n$ trees. The $i-th$ bird stands on the top of the $i-th$ tree. The trees stand in straight line f

hdu 4941 Magical Forest(STL之map应用)2014多校训练第7场

Magical Forest                                                                       Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Problem Description There is a forest can be seen as N * M grid. In this fore

题目1069:查找学生信息(STL的map简单应用)

题目描述: 输入N个学生的信息,然后进行查询. 输入:                        输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04 输出:                        输出M行,每行包括一个对应于查询的学

hdu 4842(NOIP 2005 过河)之 动态规划(距离压缩)

/* hdu 4842(NOIP 2005 过河)之 动态规划(距离压缩) dp[i] := 到桥上的i位置,最少需要踩到的石子数. dp[i] = min(dp[i], dp[i-j] + isStone[i])    条件: (1) S<=j<=T (2) dp[i-j]是青蛙可以到达的点 独木桥长度L,最大为10^9,直接用转移方程,TLE:由于桥上的石子个数100,所以当石子分布在独木桥上时,是很稀疏的. (1)S!=T 考虑,对于此题关键在于求踩到的石子数,而非跳的次数,对于两个相邻

HDU Today(三种写法)(最短路)

Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市?浦镇陶姚村买了个房子,开始安度晚年了. 这样住了一段时间,徐总对当地的交通还是不太了解.有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民同乐,这就是徐总的性格). 徐总经常会问蹩脚的英文问路:"Can you h

hdu 4568(状态压缩dp)

题意:一张n*m的网格内每个点有话费,还有若干个宝藏,问一个人要走进去拿走所有宝藏在走出来的最小花费. 思路:看宝藏只有13个直接想到了状压dp[i][j]拿了哪几个前一个为j的最小花费,先bfs+优先队列预处理出最短路,然后记忆化搜索就可. 代码如下: 1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : http://www.cnblogs.com/shu-xiaohao

单词数 (STL set集合)

单词数 Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. Output 每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数. Sample Input you are my friend # Sample

HDU 4284Travel(状压DP)

HDU 4284    Travel 有N个城市,M条边和H个这个人(PP)必须要去的城市,在每个城市里他都必须要“打工”,打工需要花费Di,可以挣到Ci,每条边有一个花费,现在求PP可不可以从起点1走完所有的他必须要去的城市,打完所有的工,并且成功回到起点1 由于H<=15,所以显然可以状压,预处理这些都必须去的城市之间的最短距离(可以floyd),然后状压DP[S][i]表示他到达了S这些城市后正处在第i个城市里(所以S & (1<<i) != 0)的剩余的最大的钱的数量,然