HihoCoder1665方块游戏([Offer收割]编程练习赛40)(线段树)
2024-08-25 06:31:22
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
小Ho在玩一款类似俄罗斯方块的游戏。与原版俄罗斯方块不同的是,落下方块都是长度不一的横向长条,并且不能移动也不能变成竖直方向。
XXXXXX <- 长度为6的横向长条。
第i个长条的最左端的格子坐标是Li,最右端的格子坐标是Ri;长条从很高的位置下落,中途遇到地面或者受到之前长条支撑,就会停在当前高度。
你能计算出每个长条最后停留的高度是多少吗? 直接停在地面上的长条高度视为1。
例如5个长条依次下落的位置是[10, 15], [7, 12], [12, 19], [1, 4], [1, 7],则每个长条最终停留的位置如下图所示:
5555555 33333333
222222
4444 111111
输入
第一行包含一个整数N。
以下N行每行包含两个整数Li, Ri。
对于30%的数据,1 ≤ N ≤ 1000, 1 ≤ Li ≤ Ri ≤ 1000
对于100%的数据, 1 ≤ N ≤ 100000, 1 ≤ Li ≤ Ri ≤ 100000
输出
输出N行,每行包含一個整数,代表第i个长条停留的高度。
- 样例输入
-
5
10 15
7 12
12 19
1 4
1 7 - 样例输出
-
1
2
3
1
3
#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctime>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=;
int N,L,R,x,y,z;
struct Segment_Tree{
int maxx;
int tag;
}T[maxn<<];
void upd(int L,int R,int root){
if(x>R||y<L)return;
if(x<=L&&y>=R){ T[root].maxx=z; T[root].tag=z;return;}
int mid=(L+R)>>;
if(T[root].tag) T[root<<].maxx=T[root<<|].maxx=T[root<<].tag=T[root<<|].tag=T[root].tag,T[root].tag=;
upd(L,mid,root<<);
upd(mid+,R,root<<|);
T[root].maxx=max(T[root<<].maxx,T[root<<|].maxx);
}
int query(int L,int R,int root){
if(x>R||y<L) return ;
if(x<=L&&y>=R) return T[root].maxx;
int mid=(L+R)>>;
if(T[root].tag) T[root<<].maxx=T[root<<|].maxx=T[root<<].tag=T[root<<|].tag=T[root].tag,T[root].tag=;
return max(query(L,mid,root<<),query(mid+,R,root<<|));
}
int main(){
scanf("%d",&N);
for(int i=;i<=N;i++){
scanf("%d%d",&x,&y);
int temp=query(,,);
z=temp+;
printf("%d\n",z);
upd(,,);
}
return ;
}
最新文章
- BranchCache在sharepoint2013使用
- php字符串操作集锦
- 从 HTTP 到 HTTPS - IIS 部署免费 HTTPS
- js获取元素的innerText属性为什么为空
- python模块调用
- echo 和 cat 的 区别
- Pongo建立信号基站-实际上还是考中位数
- 我的Myeclipse黑色主题
- HDU 5802 Windows 10 (贪心+dfs)
- PHP5 session 详解
- Java内存结构、类的初始化、及对象构造过程
- 安卓接入ShareSDK问题
- Ajax.BeginForm返回方法OnSuccess
- sudo: unable to resolve host XXX 解决方法
- -_-#【缓存】Content-Type 错误
- 使用apache反向代理tomacat
- C++ enum用法小技巧
- Unity 捏脸整理及基于骨骼的捏脸功能实现
- hdu1242 DFS基础(回溯的重要性)
- 翻译:man getopt(1)中文手册
热门文章
- local variable &#39;xxx&#39; referenced before assignment(犯过同样的错)
- HDOJ 3473 Minimum Sum
- 跟我一起用Symfony写一个博客网站;
- Android Interactive Animation
- 纪念下自学QT 第十天 终于写成了串口调试助手
- Ionic常见问题
- 3.09课&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;for循环
- 《Java并发编程的艺术》留给自己以后看的笔记
- nova 为何要做互信
- AC自动机的一点理解