题意: 在x,y坐标范围为10 ^ -9 ~~ 10 ^ 9的坐标轴之中,有 10W个点(注意有些点可能在同一坐标上),然后有10W个询问,处理询问按照输入顺序处理,对于每个询问a,b    a == 0 代表对 x == b轴处理; a == 1 代表 对y == b轴处理。处理即为把该轴上的点全部清空,输出清空的点的数量。已经清空的点,不计算在接下来的询问中。

思路:map + multiset 对于x轴和y轴,分别用两个map 映射,每一个x(或者y)轴都对应着一排点,这些点用multiset存储,为的是在里面二分找需要擦除的y(或者x)上的点。

#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <climits>//形如INT_MAX一类的
#define MAX 100005
#define INF 0x7FFFFFFF
//#pragma comment(linker, "/STACK:36777216") ///传说中的外挂
using namespace std; inline void RD(int &ret) {
char c;
int flag = 1 ;
do {
c = getchar();
if(c == '-')flag = -1 ;
} while(c < '0' || c > '9') ;
ret = c - '0';
while((c=getchar()) >= '0' && c <= '9')
ret = ret * 10 + ( c - '0' );
ret *= flag ;
}
void OT(int a) {
if(a < 0) {
putchar('-');
a = -a;
}
if(a >= 10)OT(a / 10);
putchar(a % 10 + '0');
} typedef map<int ,multiset<int> > MP;
multiset<int>::iterator it,it2;
MP x,y;
int n,m; void solvex(int xx) {
int size = x[xx].size();
for(it=x[xx].begin(); it != x[xx].end(); it++) {
int yy = (*it);
it2 = lower_bound(y[yy].begin(), y[yy].end(),xx);
while((*it2) == xx) {
y[yy].erase(xx);
it2 = lower_bound(y[yy].begin(), y[yy].end(),xx);
}
}
OT(size);
puts("");
x[xx].clear();
} void solvey(int yy) {
int size = y[yy].size();
for(it=y[yy].begin(); it != y[yy].end(); it ++) {
int xx = (*it);
it2 = lower_bound(x[xx].begin(), x[xx].end(),yy);
while((*it2) == yy) {
x[xx].erase(yy);
it2 = lower_bound(x[xx].begin(),x[xx].end(),yy);
}
}
OT(size);
puts("");
y[yy].clear();
} int main() {
int a,b;
while(scanf("%d%d",&n,&m) ) {
if(n == 0 && m == 0) break;
for(int i=0; i<n; i++) {
RD(a); RD(b);
x[a].insert(b);
y[b].insert(a);
}
for(int i=0; i<m; i++) {
RD(a); RD(b);
if(a == 0) solvex(b);
if(a == 1) solvey(b);
}
puts("");
}
return 0;
}

最新文章

  1. Spark学习(三) -- SparkContext初始化
  2. linux下JDK1.7安装
  3. MVC网址路由与生命周期
  4. &lt;转&gt;如何进行code review
  5. CFX客户端调用报错
  6. CSS实现背景透明,文字不透明(各浏览器兼容)
  7. 黄聪:wordpress如何使用get_avatar禁止调用gravatar头像,替换为自定义头像
  8. 新浪微博授权时出现&quot;关注 *** 的微博&quot;
  9. Web Services的相关名词解释:WSDL与SOAP
  10. OJ题:字符串分隔
  11. virtual box centos7 common operation
  12. android全屏/沉浸式状态栏下,各种键盘挡住输入框解决办法
  13. 人生苦短之---第一个Python程序
  14. 探秘小程序(8):scroll-view组件
  15. System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。
  16. serving inference
  17. (转)开源项目t-io
  18. java 获取两个日期之间的所有天数
  19. Linux内存使用方法详细解析
  20. C# 查找其他应用程序并打开、显示、隐藏、关闭

热门文章

  1. getAttribute()获取属性
  2. SqlServer和Oracle中一些常用的sql语句7 游标
  3. opencv之haar特征+AdaBoos分类器算法流程(二)
  4. uva 10127 - Ones(数论)
  5. Qt之开机自启动
  6. Delphi中多标签页面的实现
  7. 信号槽所用的参数类型,必须是Qt能认识的元类型,否则就要调用Q_DECLARE_METATYPE和qRegisterMetaType进行注册
  8. html5之拖放简单效果
  9. 进程、线程、轻量级进程、协程和go中的Goroutine
  10. delphi中无类型文件读写