人工模拟。。

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#include<cmath>
#include<queue>
#include<set>
#include<map>
using namespace std;
#define N 10100
#define inf 1000000010
map<int,int>x,y;
struct X{
int x,y;
bool operator<(const X&a)const{
if(a.x==x)return a.y>y;
return a.x>x;
}
X(int a=0,int b=0):x(a),y(b){}
}tmpx;
struct Y{
int x,y;
bool operator<(const Y&a)const{
if(a.y==y)return a.x>x;
return a.y>y;
}
Y(int a=0,int b=0):x(a),y(b){}
}tmpy;
multiset<Y>sety;
multiset<Y>::iterator py, ty;
multiset<X>setx;
multiset<X>::iterator px, tx;
int main(){
int n, m, u, v;
while(scanf("%d %d",&n,&m),n+m){
x.clear();
y.clear();
setx.clear();
sety.clear();
while(n--){
scanf("%d %d",&u,&v);
x[u]++;
y[v]++;
setx.insert(X(u,v));
sety.insert(Y(u,v));
}
while(m--){
scanf("%d %d",&u,&v);
if(u==0){
if(x.find(v)==x.end()){puts("0");continue;}
printf("%d\n",x.find(v)->second);
x.erase(v);
for(px=setx.lower_bound(X(v,-inf));px!=setx.end();)
{
tmpx = *px;
if(tmpx.x!=v)break;
py = sety.lower_bound(Y(tmpx.x,tmpx.y)); sety.erase(py);
y[tmpx.y]--;
tx = px;
px++;
setx.erase(tx);
}
}
else {
if(y.find(v)==y.end()){puts("0");continue;}
printf("%d\n",y.find(v)->second);
y.erase(v);
for(py=sety.lower_bound(Y(-inf,v));py!=sety.end();)
{
tmpy = *py;
if(tmpy.y!=v)break;
px = setx.lower_bound(X(tmpy.x,tmpy.y));
setx.erase(px);
x[tmpy.x]--;
ty = py;
py++;
sety.erase(ty);
}
}
}
puts("");
}
return 0;
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

HDU 4022 Bombing STL 模拟题的更多相关文章

  1. HDU 1262 寻找素数对 模拟题

    题目描述:输入一个偶数,判断这个偶数可以由哪两个差值最小的素数相加,输出这两个素数. 题目分析:模拟题,注意的是为了提高效率,在逐个进行判断时,只要从2判断到n/2就可以了,并且最好用打表法判断素数. ...

  2. HDU 2093 考试排名 模拟题

    解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...

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

    题目 参考了     1     2 #define _CRT_SECURE_NO_WARNINGS //用的是STL中的map 和 multiset 来做的,代码写起来比较简洁,也比较好容易理解. ...

  4. HDU 4028 The time of a day STL 模拟题

    暴力出奇迹.. #include<stdio.h> #include<iostream> #include<algorithm> #include<vecto ...

  5. hdu 4022 Bombing

    Bombing Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)Total Sub ...

  6. HDU 2521 反素数 模拟题

    解题报告:水题,直接附上代码,只是觉得这题的作者是不是吃饱了饭撑的,反素数的概念跟这题一点关系都没有. #include<cstdio> int judge1(int k) { ; ;i& ...

  7. HDU 1256 画8 模拟题

    解题报告:这题我觉得题目有一个没有交代清楚的地方就是关于横线的字符的宽度的问题,题目并没有说,事实上题目要求的是在保证下面的圈高度不小于上面的圈的高度的情况下,横线的宽度就是等于下面的圈的高度. #i ...

  8. HDU 4022 Bombing (map + multiset)

    题意: 在x,y坐标范围为10 ^ -9 ~~ 10 ^ 9的坐标轴之中,有 10W个点(注意有些点可能在同一坐标上),然后有10W个询问,处理询问按照输入顺序处理,对于每个询问a,b    a == ...

  9. hdu 4515 年月份模拟题

    小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) ...

随机推荐

  1. Hadoop-2.2.0中国文档—— MapReduce 下一代 -- 公平调度

    目的 此文档描写叙述了 FairScheduler, Hadoop 的一个可插入式的调度器,同意 YARN 应用在一个大集群中公平地共享资源. 简单介绍 公平调度是一种分配资源给应用的方法.以致到最后 ...

  2. Holding Bin-Laden Captive!(杭电1085)(母函数)

    Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Ja ...

  3. wpa/wpa2破解系统(CDlinux)U盘启动傻瓜教程

    CDlinux是破解无线wifi信号的很好用的系统.它就像一个PE,不过它是基于Linux内核的微型系统.里面的破解工具很齐全,既有传统的抓包工具,也有最新的PIN码破解软件,而且针对windows用 ...

  4. 源码安装apache及配置转发

    一.    安装Apache a)    解压:tar -xvf httpd-*; b)    ./configure --prefix=/usr/oracle/apache CC="gcc ...

  5. [Windows Phone] 导览控制项(Navigation controls)

    原文:[Windows Phone] 导览控制项(Navigation controls) [前言] 如果应用程式只有单一页面,在画面呈现上可能会让使用者容易没有新鲜感,这个范例是使用导览控制项(Na ...

  6. T-SQL基础(2) - 单表查询

    开窗函数over select orderid, custid, val, SUM(val) over() as totalvalue, SUM(val) over(partition by cust ...

  7. dm8148 jpeg编解码器测试

    测试过程: 1)于A8将jpeg传送到videoM3解码,然后,videoM3编码.在编译jpeg图像传输到A8,主要是测试jpeg编码的图像需要多少时间: 1000w像素:  编码时间:43ms. ...

  8. appendChild的用法

    appendChild的用法 1,先把元素从原有父级上删除 2,再把元素添加到新父级上

  9. 透过浏览器看HTTP缓存(转)

    作为前端开发人员,对于我们的站点或应用的缓存机制我们能做的似乎不多,但这些却是与我们关注的性能息息相关的部分,站点没有做任何缓存机制,我们的页面可能会因为资源的下载和渲染变得很慢,但大家都知道去找前端 ...

  10. Swing之JTable的详细介绍(转)

    表格(Table)的使用与介绍8-1:使用JTable组件:类层次结构图:java.lang.Object--java.awt.Component--java.awt.Container--javax ...