问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

神犇求解…树状数组能求区间最值吗?时间复杂度是多少啊?…还有就是树状...

发布网友 发布时间:2022-04-24 20:53

我来回答

2个回答

热心网友 时间:2022-04-12 20:20

其实树状数组是可以求区间最值的。区间最值问题一般称作RMQ问题,有树状数组算法,S-T算法,以及线段树算法。对于树状数组,修改的复杂度都是O(nlogn),查询是O(logn)其优势相对于线段树,代码风格整齐,简短,相对于S-T,可以进行修改,是一种比较好用的数据结构。
void modify(int p,int v){
for(int i=p;i<=N;i++){
for(int j=i;j<=N;j+=lowbit(j)){
idx[i]=max(idx[i],seq[i]);
}
}
}

int query(int l,int r){
int ans=seq[r];
while(1){
ans=max(ans,seq[r]);
if(l==r) break;
for(r-=1;r-l>=lowbit(r);r-=lowbit(r)){
ans=max(ans,idx[r]);
}
}
return ans;
}
seq[]是数列,idx[]为索引数组,维护的是一段区间内的最大值。

热心网友 时间:2022-04-12 21:38

树状数组是用来算静态序列区间子段和的,不能用来求最值,静态序列求区间最值得话应该用Rmq,与此相关的算法还有线段树(这个前面说的都能求,而且可以动态维护)。追问额……那么请问树状数组在求解什么问题上更有优势?只有求前缀和吗?

追答就我看来,树状数组除了代码短,常数小,没别的优势了,基本上能用树状数组的一定能用线段树。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 树状数组的树状数组的充分性 树状数组如何修改区间的值 树状数组解决最长不下降子序列 讲讲主要思路就好 求一算法 ,是关于数组的问题 代表树状数组的数组是什么意思 说的通俗易懂一点 tree 树状数组的基本概念 nba篮筐高度是多高? 标准的篮球高度多少? 篮球标准篮筐高度是多少? 篮球的标准尺寸是多少? CBA/NBA/国际篮联的篮球圈的标准高度分别是多少? 加盟做麻花有什么样的市场? 什么叫特稿 申赋渔的人物经历 红沙糖可作肥料用吗? 新闻写作中特稿与特写的区别 有什么红糖制零食 请问:报刊杂志专稿、特稿的投稿信箱? 无极麻花培训,我想学做无极麻花 新闻新兴文体包括哪些? 如何利用树状数组修改一个区间? 线段树的解决实际问题 高级数据结构的目录 c 语言知识清单? C语言,哪位好心的大哥,姐姐:能告述我位运算吗?我看不懂啊! NOI比noip多考些什么 惠普e72530如何设置扫描 word2007中水印背景图片如何修改? 在word文档中,通过水印添加背景,背景图片会变淡, 请问有什么方法可以解决这个问题? 让水印清晰。。。 如何设置word背景图片的透明度和大小 photoshop怎样制作一张水印图案的背景图。例如以下这张图片背的景样 在中公学完Java之后,一般能拿多少薪资呢? 配眼镜视频:带女儿去医院配眼镜,这个画面你是不是很熟悉 在培训学校学完Java工资能拿多少? 最近在抖音上看到很多关于领军眼镜的视频,他们配眼镜专业不? 参加JAVA培训之后工资大概多少 那里有眼镜配置标准视频,我想了解一下配置一付近视眼镜的过程 女孩学习Java好就业吗?收入能达到多少? 配眼镜指南/流程是怎么样的? 配眼镜有什么讲究?