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
BZOJ3065
「
BZOJ3065
」带插入区间K小值 [分块]
考虑分块,每个块都是用链表维护的,并保证\(size\)和分块相当。我们考虑一下怎么去查询,很显然,可以对值域分块,单点修改,记录前缀和,完全ojbk了,对每个块维护一个\(pre,prb\)数组\(pre_{i,j}\)数组表示\(1~i\)这些块中,出现了多少个\(j\)\(prb_{i,j}\)数组表示\(1~i\)这些块中,在值域块\(j\)的有多少个零散部分查一查就好了,修改也是稳定\(
_Isaunoya
·
2020-02-12 17:00
「
BZOJ3065
」带插入区间第K小值 替罪羊树×线段树
题目描述从前有\(n\)只跳蚤排成一行做早操,每只跳蚤都有自己的一个弹跳力\(a_i\)。跳蚤国王看着这些跳蚤国欣欣向荣的情景,感到非常高兴。这时跳蚤国王决定理性愉悦一下,查询区间\(k\)小值。他每次向它的随从伏特提出这样的问题:从左往右第\(x\)个到第\(y\)个跳蚤中,a[i]第\(k\)小的值是多少。这可难不倒伏特,他在脑袋里使用函数式线段树前缀和的方法水掉了跳蚤国王的询问。这时伏特发现
ModestStarlight
·
2018-03-13 14:00
bzoj3065
带插入区间K小值
这题其实好像很难,但是听werkeytom_ftd说可以用块链水,于是就很开心地去打了个块状链表套主席树,插入操作就直接插到一个块中,注意如果块的大小2*block就将块分开,注意每一个修改或插入都要修改后继的状态,贴代码:#include #include #include #include #include #definefo(i,a,b)for(inti=a;i=b;i--) using
samjia2000
·
2016-05-10 22:00
链表
分块
块状链表
[
bzoj3065
]带插入区间K小值
题目大意在线维护一个序列,需要兹瓷插入、修改、求区间K小值。树套树开一颗权值线段树。对于区间[l,r]对应的结点上保存一颗spaly,spaly中的结点权值均在[l,r],按照位置从小到大。要维护一个结点的位置号。插入操作,往下走然后插入到spaly中,并打区间加标记来维护位置号。修改操作,相当于一次删除一次插入。询问操作,利用线段树特性查找即可。嘴巴我会,你要我打……还没准备好。分块分块。设c为
WerKeyTom_FTD
·
2016-05-06 22:00
[
bzoj3065
]带插入区间K小值 解题报告
傻逼怎么做:先用一个块链维护序列,做到O(n√)插入,O(1)比较两个点在序列中位置的大小。时间复杂度是O(nn√)。再用一个块链维护权值,每个块维护按位置排序的序列。查询的时候从小到大枚举每个块,先在块里二分统计块内在查询区间中的个数,然后如果发现答案在这个块里,就直接暴力找到第k小的是哪个。取块大小等于O(nlog2n−−−−−−√),则时间复杂度是O(qnlog2n−−−−−−√)。总的时间
TA201314
·
2016-04-23 14:00
分治
分块
【
bzoj3065
】带插入区间k小值 替罪羊树套主席树
省选的时候听来一个分块做法,就是按照询问Q每Q^0.5分一块然后块与块之间暴力重构。 或者用权值线段树套替罪羊树,具体可以见clj《重量平衡树和后缀平衡树在信息学中的应用》中一道例题。 我用的是替罪羊树套主席树,具体用替罪羊树保存一个区间[l,r]中的一颗记录颜色的主席树,然后查询的时候就提取出logN个区间在主席树上二分;插入的时候如果不平衡就暴力重构。 这样大概是O(
lych_cys
·
2016-03-24 20:00
主席树
替罪羊树
上一页
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
其他