智子入侵

【题目背景】
三体发现了人类。
在疲于应付三个无法预测规律的太阳的时候,地球是他们唯一的希望。
为了限制住人类的基础物理研究,避免 300 年的技术爆炸,智子到达了地球。
目标:所有的粒子对撞机。
【题目描述】
作为三体人的科学执政官,元首需要你想他汇报智子每一次攻击的成果。军事执政官
已经把智子的攻击计划提交给你,而人类的一举一动也在智子的监视之下。你需要计算出
每一次智子的攻击能够摧毁多少个对撞机。
把地球的地面抽象为一个网格平面,对撞机占据一块边界与坐标轴平行的矩形地面,
而智子每次只攻击一个格子。一个对撞机的任意一部分被攻击到,则整个对撞机被彻底摧
毁。
需要注意的是,对撞机之间可以重叠。
【输入】(collider.in)
文件的第一行有一个正整数 n,表示你所知道的 n 个事件。接下来的 n 行描述 n 个事
件(它们按输入的顺序依次发生)。事件只有两种:Build & Destroy(B & D)。
第 i+1 行(i>=1)描述了第 i 个事件,每一行的开头是一个字母,表示事件的种类,格
式如下:
B x1 y1 x2 y3:建造一个对撞机,左下角坐标为(x1,y1),右上角坐标为(x2,y2)
D x1 y1:智子进行了一次攻击,坐标为(x1,y1)
注意,坐标均为正整数。B 和 D 为大写。
【输出】(collider.out)
对于每一次智子的攻击,在单独的一行里输出这一次攻击摧毁掉的对撞机个数。
【样例输入】
4
B 1 1 3 3
B 3 3 5 5
D 3 3
D 3 3
【样例输出】
2
0
【数据规模】
25%的数据 n<=1000 x,y<=500
50%的数据 n<=10000 x,y<=500
100%的数据 n<=200000 x,y<=1500

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N=200010,M=1510,K=25000010;
struct Data
{int tp,x1,y1,x2,y2;
} q[N];
int cnt,rt[M<<2],ch[K][2],Min[K];
int Q,ans[N];
char tp[10];
#define mid ((l+r)>>1)int NewNode()
{Min[++cnt]=K;return cnt;
}void Inserty(int &x,int l,int r,int gy,int key)
{if(!x)x=NewNode();if(l==r){Min[x]=min(Min[x],key);return;}if(mid>=gy)Inserty(ch[x][0],l,mid,gy,key);else Inserty(ch[x][1],mid+1,r,gy,key);Min[x]=min(Min[ch[x][0]],Min[ch[x][1]]);
}void Insertx(int x,int l,int r,int gx,int gy,int key)
{Inserty(rt[x],1,1500,gy,key);if(l==r)return;if(mid>=gx)Insertx(x<<1,l,mid,gx,gy,key);else Insertx(x<<1|1,mid+1,r,gx,gy,key);
}int Queryy(int x,int l,int r,int y1,int y2)
{if(!x)return K;if(l>=y1&&r<=y2)return Min[x];int ret=K;if(mid>=y1)ret=min(ret,Queryy(ch[x][0],l,mid,y1,y2));if(mid<y2)ret=min(ret,Queryy(ch[x][1],mid+1,r,y1,y2));return ret;
}int Queryx(int x,int l,int r,int x1,int x2,int y1,int y2)
{if(l>=x1&&r<=x2)return Queryy(rt[x],1,1500,y1,y2);int ret=K;if(mid>=x1)ret=min(ret,Queryx(x<<1,l,mid,x1,x2,y1,y2));if(mid<x2)ret=min(ret,Queryx(x<<1|1,mid+1,r,x1,x2,y1,y2));return ret;
}int main()
{freopen("collider.in","r",stdin);freopen("collider.out","w",stdout);scanf("%d",&Q);Min[0]=K;for(int i=1; i<=Q; i++){scanf("%s",tp);if(tp[0]=='B'){q[i].tp=1;scanf("%d%d",&q[i].x1,&q[i].y1);scanf("%d%d",&q[i].x2,&q[i].y2);}if(tp[0]=='D'){q[i].tp=2;scanf("%d%d",&q[i].x1,&q[i].y1);}}for(int i=Q; i>=1; i--){if(q[i].tp==2)Insertx(1,1,1500,q[i].x1,q[i].y1,i);else{int ret=Queryx(1,1,1500,q[i].x1,q[i].x2,q[i].y1,q[i].y2);if(ret!=K)ans[ret]+=1;}}for(int i=1; i<=Q; i++)if(q[i].tp==2)printf("%d\n",ans[i]);return 0;
}

NOI 模拟试题(一)相关推荐

  1. 全国青少年信息学(计算机)奥林匹克分区联赛试题解析(中学),全国青少年信息学(计算机)奥林匹克分区联赛复赛模拟试题一汇总...

    复赛模拟试题一 (3小时,满分400分) 说明: 1.严格按照题目所要求的格式进行输入.输出,否则严重影响得分. 2.题目测试数据有严格的时间限制5s,超时不得分. 3.输入文件格式不用判错;从输入文 ...

  2. 计算机考试批处理试题,2015计算机三级考试pc技术模拟试题及答案(八)

    2015计算机三级考试pc技术模拟试题及答案(八) 1.关于Windows 98中的网上邻居的相关叙,( )是错误的. A.通过网上邻居可以游览和使用网上的全部计算机资源 B.通过网上邻居可以浏览网上 ...

  3. 微型计算机组成原理考试,全国高等教育自学考试计算机组成原理模拟试题

    第一部分 选择题(共15分) 一.单项选择题(本大题共15小题,每小题1分,共15分.在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选.多选或未选均无分.) 1. ...

  4. 计算机一级在线模拟试题,计算机一级模拟试题带答案

    计算机一级模拟试题带答案 计算机考试分为四个等级,不同等级的内容不同,那么百分网小编为大家提供的是关于计算机一级的模拟考试题,希望能为各位考生的复习提供帮助! 一.判断正误题,正确填A,错误填B(共2 ...

  5. 计算机一级考模拟试题,计算机一级MSOffice考前模拟试题「附答案」

    计算机一级MSOffice考前模拟试题「附答案」 一级分为DOS版和Windows版,考核应试者计算机基本知识和使用微机系统的初步能力.那么计算机一级MSOffice考试会怎么考?以下仅供参考! 1) ...

  6. 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...

    唐朔飞<计算机组成原理>(第2版)配套题库[名校考研真题+课后习题+章节题库+模拟试题] 第一部分 名校考研真题 2015年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业 ...

  7. 部队文职计算机试题,2020军队文职人员考试:计算机基础模拟试题(1)

    [导语]2020年军队文职备考进行中,为助力各位考生做好2020年军队文职招聘考试准备,山东中公教育小编为大家整理了考试题库:2020军队文职人员考试:计算机基础模拟试题(1),供大家学习和参考. 1 ...

  8. 计算机一级考试试题 文明,XP计算机文明基础模拟试题库1.doc

    XP计算机文明基础模拟试题库1 XP版计算机文化基础试题库 序号题目答案面向特定专业应用领域(如图形.图像处理等)使用的计算机一般是( ) A.A.D在有关计算机软件.程序.文档的描述中,下面不正确的 ...

  9. 固定在计算机主机箱体上,联结计算机各种部件,起桥梁作用的是,2014年12月计算机应用基础模拟试题...

    2014年12月份计算机应用基础统考模拟试题 一.单项选择题 1. 世界上第一台电子数字计算机采用的电子器件是(c ) A.大规模集成电路 B 集成电路 C 晶体管 D 电子管 2.下列说法中,正确的 ...

最新文章

  1. 01 | Spring Data JPA 初识
  2. MySQL授权命令grant的使用方法
  3. draw python_科学网—Draw figures with Python - 高琳琳的博文
  4. linux 共享移动硬盘,随时登陆上QQ 自带Linux移动硬盘实战
  5. Object-C非正式协议与正式协议的区别
  6. 晶振两端的谐振电容有特殊要求吗_干货 | 晶振电路设计诀窍
  7. 17.1 Replication Configuration 复制:
  8. Entity Framework 并发处理
  9. 【ArcGIS教程】(2)ArcMap中如何导入外部Excel属性数据呢?
  10. Excel2013 单元格锁定
  11. 路由器ipv4和ipv6转发原理
  12. 面试官问我知道的分布式事务,我一口气说了六种
  13. 继 layui 之后, jQuery Mobile 宣布完全弃用!
  14. ASP.NET Core 解决控制台输出日志内容前面[40m等乱码字符
  15. java short字面量_进一步研究字面量(转)
  16. 浅谈共线性的产生以及解决方法(中篇——今生)
  17. 计算机学院刘岗,刘岗-中国科学院大学-UCAS
  18. 西西吹雪:从程序员到项目经理(一)
  19. 【Java学习0331】多线程
  20. 01_JVM与Java体系结构

热门文章

  1. OCP-1Z0-051 第61题 where通配符
  2. RFID防盗安全门在图书馆的应用
  3. python中函数与函数之间的调用,总是晕菜,整理如下,有不对或者补充的请提出来~...
  4. 浅谈金融行业自动化运维
  5. Angular------win10搭建Angular环境并运行hello-world
  6. 神兽传说1 java_神兽传说RPG
  7. 无法访问tomcat的解决方案?
  8. 斑马打印机 GK888t打印标签一次出两张的解决办法
  9. 《管理学》第四章 计划
  10. 面试 - 为什么foreach中不允许对元素进行add和remove