人工模拟。。

#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. RMQ之ST算法

    #include <stdio.h> #include <string.h> ; int a[N]; ]; inline int min(const int &a, c ...

  2. JS脚本加载与执行对性能的影响

    高性能JavaScript-JS脚本加载与执行对性能的影响 在web产品优化准则中,很重要的一条是针对js脚本的加载和执行方式的优化.本篇文章简单描述一下其中的优化准则. 1. 脚本加载优化 1.1 ...

  3. OpenGL3D迷宫场景设计

    近期学习用opengl库来构建一个3D场景,以及实现场景漫游.粒子系统等效果.终于算是是做了一个3D走迷宫游戏吧. 感觉近期学了好多东西,所以有必要整理整理. 一 实现效果 watermark/2/t ...

  4. friend keyword 对于模板 并不只不过友元!!!

    friend是C++中封装的漏网之鱼. C++中的friend同意其它的类或者是函数訪问本类的不论什么成员.甚至是private成员,仅仅要该类声明其为友元. 但是,在有些情况下,并非同意外界訪问类的 ...

  5. live555 for Android

    因为Live555 包中未提供Android 的config 所以编译器来比較麻烦,须要自己编写Android.mk ,下面是我通过 改动 现有的config文件,在cygwin实现 编译的过程,co ...

  6. Android 高仿微信即时聊天 百度云为基础的推

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/38799363 ,本文出自:[张鸿洋的博客] 一直在仿微信界面,今天最终有幸利用百 ...

  7. DP:树DP

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. Source Insight 光标变粗设置NotePad++光标设置

    为了更好的查看文档和代码,避免半天都找不到光标的情况,故做此说明 Source Insight 光标变粗 菜单中 Options --->Preferences --->Typing -- ...

  9. 【转】Qt事件循环与线程 二

    转自:http://blog.csdn.net/changsheng230/article/details/6153449 续上文:http://blog.csdn.net/changsheng230 ...

  10. 《SAS编程和数据挖掘商业案例》学习笔记# 19

    继续<SAS编程与数据挖掘商业案例>学习笔记,本文側重数据处理实践.包含:HASH对象.自己定义format.以及功能强大的正則表達式 一:HASH对象 Hash对象又称散列表,是依据关键 ...