博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4022 Bombing STL 模拟题
阅读量:6670 次
发布时间:2019-06-25

本文共 1469 字,大约阅读时间需要 4 分钟。

人工模拟。。

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define N 10100#define inf 1000000010map
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
sety;multiset
::iterator py, ty;multiset
setx;multiset
::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;}

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

你可能感兴趣的文章
【转】NSMutableArray的正确使用
查看>>
vim配置
查看>>
逆序数
查看>>
mysql远程访问的时候遇到了各种问题
查看>>
jQuery源码-美元背后的一点小技巧
查看>>
关于 多进程epoll 与 “惊群”问题
查看>>
Codeforces Round #175 (Div. 2) C. Building Permutation(贪心)
查看>>
使用任务计划程序自动执行任务
查看>>
IDEA在代码上无错误提示,但是编译时出现error:非法字符
查看>>
失业的程序员(八):创业的要素
查看>>
使用Beetle.Express简单构建高吞吐的TCP&UDP应用
查看>>
CTime类小结1
查看>>
类型串php中null和false和0之间的区别
查看>>
类模式用Bridge模式重写了Libvirt框架
查看>>
Word2003和2007如何隐藏去掉回车符
查看>>
MD5鉴定文件是否相同
查看>>
Linux 定时运行脚本、命令
查看>>
Java Web 文件上传Demo <1>
查看>>
phpmyadmi 上传大文件
查看>>
每日英语:A Buying Guide to Air-Pollution Masks
查看>>