ST能维护的性质
总结:
其实ST表不仅能处理最大值/最小值,凡是符合结合律且可重复贡献的信息查询都可以使用ST表高效进行。什么叫可重复贡献呢?设有一个二元运算 ,满足
,则
是可重复贡献的。显然最大值、最小值、最大公因数、最小公倍数、按位或、按位与都符合这个条件。可重复贡献的意义在于,可以对两个交集不为空的区间进行信息合并。
1.最大最小值。
2.在单调序列中,相同数的最大个数。
预处理
cnt[i]每个位置相同数的个数。
last[i]表示每个位置相同数在哪里结束。
对于每次查询[L, R],处理左边界L。
如果last[L] == last[R],输出R - L + 1。
如果last[L] == last[L - 1],说明左边界截断了当前连续序列,同时也要保证ST表查询的序列是一个完整的,因此需要将last[L] - L + 1和ST(last[L] + 1, R)取最大。
其余情况直接输出ST(L, R)即可,因为此时左边界没有截断序列。
3.最大公因数。
4.不同数连续序列长度
ST能维护的性质的更多相关文章
- Codeforces 671C - Ultimate Weirdness of an Array(线段树维护+找性质)
Codeforces 题目传送门 & 洛谷题目传送门 *2800 的 DS,不过还是被我自己想出来了 u1s1 这个 D1C 比某些 D1D 不知道难到什么地方去了 首先碰到这类问题我们肯定考 ...
- ECNU 3480 没用的函数 (ST表预处理 + GCD性质)
题目链接 ECNU 2018 JAN Problem E 这题卡了双$log$的做法 令$gcd(a_{i}, a_{i+1}, a_{i+2}, ..., a_{j}) = calc(i, j)$ ...
- 【BZOJ3611】[Heoi2014]大工程 欧拉序+ST表+单调栈
[BZOJ3611][Heoi2014]大工程 Description 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道. 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶 ...
- 数据结构进阶:ST表
简介 ST 表是用于解决 可重复贡献问题 的数据结构. 什么是可重复贡献问题? 可重复贡献问题 是指对于运算 \(\operatorname{opt}\) ,满足 \(x\operatorname ...
- st表树状数组入门题单
预备知识 st表(Sparse Table) 主要用来解决区间最值问题(RMQ)以及维护区间的各种性质(比如维护一段区间的最大公约数). 树状数组 单点更新 数组前缀和的查询 拓展:原数组是差分数组时 ...
- Bzoj 2006: [NOI2010]超级钢琴 堆,ST表
2006: [NOI2010]超级钢琴 Time Limit: 20 Sec Memory Limit: 552 MBSubmit: 2222 Solved: 1082[Submit][Statu ...
- HDU 5875 st+二分区间
题目大意:给你n个数,q次询问,每次询问区间[l, r],问a[i]%a[i + 1] % a[i + 2]...%a[j](j <= r)的值 思路:st预处理维护,再二分区间,复杂度n*(l ...
- [转载]无旋treap:从单点到区间(例题 BZOJ1500&NOI2005 维护数列 )
转自ZZH大佬,原文:http://www.cnblogs.com/LadyLex/p/7182631.html 1500: [NOI2005]维修数列 Time Limit: 10 Sec Mem ...
- BZOJ 5308 [ZJOI2018] Day2T2 胖 | 二分 ST表
题目链接 LOJ 2529 BZOJ 5308 题解 这么简单的题 为什么考场上我完全想不清楚 = = 对于k个关键点中的每一个关键点\(a\),二分它能一度成为哪些点的最短路起点(显然这些点在一段包 ...
- 【洛谷】【前缀和+st表】P2629 好消息,坏消息
[题目描述:] uim在公司里面当秘书,现在有n条消息要告知老板.每条消息有一个好坏度,这会影响老板的心情.告知完一条消息后,老板的心情等于之前老板的心情加上这条消息的好坏度.最开始老板的心情是0,一 ...
随机推荐
- RDD持久化和检查点
val count: RDD[(String, Int)] = mapRDD.reduceByKey(_ + _)count.collect() val value: RDD[(String, Ite ...
- JSONObject.parseObject syntax error,expect START WITH { OR [,but actually START WITH error
JSONObject.parseObject syntax error,expect START WITH { OR [,but actually START WITH error解析JSON出现异常 ...
- fs.access(path[, mode], callback)
- D_GLIBCXX_USE_CXX11_ABI
gcc ABI兼容 设置=0,表示使用C++11之前的ABI 反之,使用C++11的ABI
- charles小程序抓包
参考链接:https://www.jianshu.com/p/048b67c5ed00 1. 手机上的程序目前按app的抓包方式,配置代 理,下载证书,打开设备---微信---本地网络,就可以直接抓包 ...
- Windows10 Vmware安装Centos虚拟机
准备工作 安装Vmware软件 下载地址:https://www.vmware.com/cn/products/workstation-pro.html 下载Centos7 镜像 下载地址:https ...
- mysql 获取某个时间段内每天的数据
SELECT dayTb.cday '日期' ,IFNULL(tNumTb.num,0) '订单数' FROM ( SELECT @cdate := DATE_ADD(@cdate, INTERVAL ...
- PPT导出高分辨率tif图片——用于学术论文
PPT导出的图片默认分辨率只有96dpi,但要到印刷品要求的图片分辨率最好是300dpi,学术论文也需要高清晰度的图片.要让PPT导出的图片分辨率达到300dpi,其实可以不用PS,直接修改系统注册表 ...
- kubeadm安装单master单node节点k8s集群
操作系统:centos7.6 podSubnet(pod 网段) 10.244.0.0/16 serviceSubnet(service 网段): 10.10.0.0/16 集群角色 IP 主机名 安 ...
- navicat 远程连接不上mysql
1 查看是否开启远程连接(拿root用户举例) use mysql; select host, user from user; 以上便是开启远程连接,如果依旧不能连接,参考如下: grant all ...