E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ2957
heheda练数据结构
最近看了以下知识点:线段树套线段树线段树套平衡树准备学习:替罪羊树块状链表复习:树链剖分树状数组套线段树一些高级的线段树可持久化tire可并堆
bzoj2957
楼房重建给定第一象限的n个楼房,询问从原点能看到多少个楼房
heheda_is_an_OIer
·
2020-07-04 17:14
总结
BZOJ2957
线段树
#includeusingnamespacestd;typedeflonglongll;constintN=1e5+10;structSegmentTree{intl,r,ans;doubleval;#definel(x)Tree[x].l#definer(x)Tree[x].r#defineans(x)Tree[x].ans#defineval(x)Tree[x].val}Tree[N*4];v
Gipsy_Danger
·
2019-02-08 11:09
数据结构
[
BZOJ2957
]楼房重建
貌似已经很久没有写blog了的说……一直在用为知笔记都快忘记博客了emm这次先拿这样一道水题来写一下吧,这个思想好像很常用,最近这几天已经遇到很多次了。题意一个长度为nn的序列wiwi表示楼房高度,初始都是00,有mm个操作,每次单点修改一个位置的高度,可以变成正的也可以变成负的,问有多少个位置能够在每次修改后被看到(也就是说,其最高点与原点连线上没有其他楼房)。0≤n,m≤1000000≤n,m
WenDavidOI
·
2018-04-16 19:47
数据结构
bzoj
线段树
[
BZOJ2957
]楼房重建
首先显然可以把点看成斜率,然后就是求一个从头开始的最长上升子序列,支持单点修改。分块做法(无脑):考虑把序列分成B块,每一块维护一个从头开始的最长上升子序列,并用一个栈记录。每次询问相当于把所有块扫一遍,在当前块栈中二分到第一个大于上一块最大值的位置,然后贡献加上其到栈顶的元素个数,复杂度O(nlogBB)。修改就直接暴力重构块,复杂度O(B)。总复杂度O(n∗(nlogBB+B))。讲道理B=n
DOFYPXY
·
2018-01-11 21:15
数据结构
分块
线段树
bzoj2957
楼房重建 分块 || 线段树
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2957题意:Description小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,
霜刃未曾试
·
2017-10-09 15:16
线段树
分块
bzoj2957
楼房重建
2957:楼房重建TimeLimit: 10Sec MemoryLimit: 256MBSubmit: 1179 Solved: 560[Submit][Status][Discuss]Description小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。为了简化问题,我们考虑这些事件发生在一个
AaronGZK
·
2016-05-29 00:00
线段树
分块
bzoj
bzoj2957
楼房重建
2957:楼房重建TimeLimit: 10Sec MemoryLimit: 256MBSubmit: 1179 Solved: 560[Submit][Status][Discuss]Description小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。为了简化问题,我们考虑这些事件发生在一个
AaronGZK
·
2016-05-29 00:00
线段树
分块
bzoj
BZOJ2957
楼房重建 线段树
对于一个满足要求的序列,其中每一个点(xi,yi)与(0,0)连线的斜率一定是单调增的,因此我们可以用线段树来维护区间内的最大斜率。对于每一个修改操作,其仅会影响的右面的区间:①如果一个区间的最大斜率小于等于插入点的斜率,显然这个区间对答案没有贡献②如果一个区间的最大斜率大于插入点的斜率,递归询问两个子区间,直到叶子结点#include #include #include #include #in
WDZRMPCBIT
·
2016-04-24 08:00
heheda练数据结构
最近看了以下知识点:线段树套线段树线段树套平衡树准备学习:替罪羊树块状链表复习:树链剖分树状数组套线段树一些高级的线段树可持久化tire可并堆
bzoj2957
楼房重建给定第一象限的n个楼房,询问从原点能看到多少个楼房
heheda_is_an_OIer
·
2015-11-20 22:00
数据结构
BZOJ2957
楼房重建(线段树)
【题解】题目描述有误,一栋楼房可见,应满足其最高点到(0,0)的连线不与其他楼房相交这个条件可以等价为:它的斜率比之前的任何一个都大(相等也不行)因此,只需O(logN)修改、O(logN)求出区间[1,n]内比之前的任何一个数都大的数有多少个能使用线段树的条件是:两个子问题可以合并本题中,记cntv[o]为:仅考虑o所代表的区间,有多少满足条件的数那么首先,cntv[o]一定包含cntv[o*2
cjk_cjk
·
2015-06-21 15:21
树状数组&线段树
思路题
BZOJ2957
楼房重建(线段树)
【题解】题目描述有误,一栋楼房可见,应满足其最高点到(0,0)的连线不与其他楼房相交 这个条件可以等价为:它的斜率比之前的任何一个都大(相等也不行)因此,只需O(logN)修改、O(logN)求出区间[1,n]内比之前的任何一个数都大的数有多少个 能使用线段树的条件是:两个子问题可以合并 本题中,记cntv[o]为:仅考虑o所代表的区间,有多少满足条件的数 那么首先,cntv[o]一定包含cntv
cjk_cjk
·
2015-06-21 15:00
线段树
分情况讨论
【
BZOJ2957
】楼房重建 分块水题
#include intmain() { puts("转载请注明出处谢谢"); puts("http://blog.csdn.net/vmurder/article/details/43406043"); } 题解:分块水题。不懂看代码:#include #include #include #include #include #defineN101000 #defineP2050 #definee
Vmurder
·
2015-02-02 11:00
BZOJ2957
分块水题
楼房重建
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他