HDU 4022 Bombing STL 模拟题
人工模拟。。
#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 模拟题的更多相关文章
- HDU 1262 寻找素数对 模拟题
题目描述:输入一个偶数,判断这个偶数可以由哪两个差值最小的素数相加,输出这两个素数. 题目分析:模拟题,注意的是为了提高效率,在逐个进行判断时,只要从2判断到n/2就可以了,并且最好用打表法判断素数. ...
- HDU 2093 考试排名 模拟题
解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...
- HDU 4022 Bombing(stl,map,multiset,iterater遍历)
题目 参考了 1 2 #define _CRT_SECURE_NO_WARNINGS //用的是STL中的map 和 multiset 来做的,代码写起来比较简洁,也比较好容易理解. ...
- HDU 4028 The time of a day STL 模拟题
暴力出奇迹.. #include<stdio.h> #include<iostream> #include<algorithm> #include<vecto ...
- hdu 4022 Bombing
Bombing Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Sub ...
- HDU 2521 反素数 模拟题
解题报告:水题,直接附上代码,只是觉得这题的作者是不是吃饱了饭撑的,反素数的概念跟这题一点关系都没有. #include<cstdio> int judge1(int k) { ; ;i& ...
- HDU 1256 画8 模拟题
解题报告:这题我觉得题目有一个没有交代清楚的地方就是关于横线的字符的宽度的问题,题目并没有说,事实上题目要求的是在保证下面的圈高度不小于上面的圈的高度的情况下,横线的宽度就是等于下面的圈的高度. #i ...
- HDU 4022 Bombing (map + multiset)
题意: 在x,y坐标范围为10 ^ -9 ~~ 10 ^ 9的坐标轴之中,有 10W个点(注意有些点可能在同一坐标上),然后有10W个询问,处理询问按照输入顺序处理,对于每个询问a,b a == ...
- hdu 4515 年月份模拟题
小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) ...
随机推荐
- 【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(二)
4 三维 4.1 共享三维场景 用户能够将ArcScene文档导出为3D web场景,能够被加载到ArcGIS Online.Portal或本地Web服务器上并进行分享.这样,用户可以 ...
- Gitblit配置
Gitblit的安装配置及访问-windows (2013-09-11 11:52:31) 转载▼ 分类: android基础 Git 是现在很流行的分布式版本控制工具,github更是人人皆知. ...
- Swing多线程编程(转)
关键字: Swing,多线程,GUI,SwingWorker 摘要: 本文论述了怎样开发多线程的Swing程序,从而提高Swing程序的响应速度和性能. 近期,我将推出一系列研究Swing程序 ...
- T-SQL基础(1) - T-SQL查询和编程基础
第一范式: 第一范式要求表中的行必须是唯一的,属性应该是原子的(atomic).这个范式对于关系的定义来说是冗余的,换句话说,如果一个表真可以表示一个关系,那么它一定符合第一范式. 行的唯一性是可以通 ...
- Spring、Spring MVC、MyBatis
Spring.Spring MVC.MyBatis整合文件配置详解 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. Sp ...
- emeditor 配置教程
1.众多的图形界面配置功能 通过查看EmEditor的安装目录,可以发现,EmEditor有几个配置文件,理论上应该可以通过修改配置文件来达到配置EmEditor的目 的.然而,打开配置文件一看,如果 ...
- js阻止冒泡
js阻止冒泡 (ev || event).cancelBubble = true; 标签切换 <script type="text/javascript"> windo ...
- 【Linux探索之旅】第二部分第三课:文件和目录,组织不会亏待你
内容简介 1.第二部分第三课:文件和目录,组织不会亏待你 2.第二部分第四课预告:文件操纵,鼓掌之中 文件和目录,组织不会亏待你 上一次课我们讲了命令行,这将成为伴随我们接下来整个Linux课程的一个 ...
- AsyncActivity异步加载网页
import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; imp ...
- Cocos2d-x3.1回调函数具体解释
Cocos2d-x3.1回调函数的定义CCRef.h声明.源代码,例如,下面的: typedef void (Ref::*SEL_CallFunc)(); typedef void (Ref::*SE ...