桂林 网站 制作医疗网站建设咨询
2026/3/23 22:40:28 网站建设 项目流程
桂林 网站 制作,医疗网站建设咨询,wordpress固定连接只能访问首页,国外网页设计网站【模板】静态区间最值 时间限制#xff1a;5秒 空间限制#xff1a;1024M 网页链接 牛客tracker 牛客tracker 每日一题#xff0c;完成每日打卡#xff0c;即可获得牛币。获得相应数量的牛币#xff0c;能在【牛币兑换中心】#xff0c;换取相应奖品#xff0…【模板】静态区间最值时间限制5秒 空间限制1024M网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述对于给定的长度为n nn的数组 {a 1 , a 2 , … , a n a_1,a_2,…,a_na1​,a2​,…,an​} 你需要构建一个能够维护区间最大/最小值信息的数据结构使得其能支持区间最小值查询输出[ l , r ] [l,r][l,r]这个区间中的最小元素即m i n ⁡ min⁡min⁡{a l , a l 1 , … , a r a_l,a_{l1},…,a_ral​,al1​,…,ar​} 区间最大值查询输出[ l , r ] [l,r][l,r]这个区间中的最大元素即m a x maxmax⁡{a l , a l 1 , … , a r a_l,a_{l1},…,a_ral​,al1​,…,ar​} 。提示本题为『离线 ‖ 静态仅询问 ‖区间最值』模板题我们可以使用S T STST表解决预期实现时间复杂度为O ( n l o g ⁡ n ) O(nlog⁡n)O(nlog⁡n)。您也可以尝试使用已知的O ( n ) O(n)O(n)复杂度做法通过本题。输入描述第一行输入两个整数n , q ( 1 ≦ n , q ≦ 5 × 1 0 5 ) n,q(1≦n,q≦5×10^5)n,q(1≦n,q≦5×105)代表数组中的元素数量、操作次数。第二行输入n nn个整数a 1 , a 2 , … , a n ( − 1 0 9 ≦ a i ≦ 1 0 9 ) a_1,a_2,…,a_n(−10^9≦a_i≦10^9)a1​,a2​,…,an​(−109≦ai​≦109)代表初始数组。此后q qq行每行先输入一个整数o p ( 1 ≦ o p ≦ 2 ) op(1≦op≦2)op(1≦op≦2)代表操作编号随后若o p 1 op1op1在同一行输入两个整数l , r ( 1 ≦ l ≦ r ≦ n ) l,r(1≦l≦r≦n)l,r(1≦l≦r≦n)代表区间最小值查询若o p 2 op2op2在同一行输入两个整数l , r ( 1 ≦ l ≦ r ≦ n ) l,r(1≦l≦r≦n)l,r(1≦l≦r≦n)代表区间最大值查询。输出描述对于每一次询问输出一行一个整数代表区间最值。示例1输入6 4 1 1 4 5 1 4 1 1 1 1 3 4 2 4 4 2 1 6输出1 4 5 5说明对于第一次操作查询1 , 1 , 4 , 5 , 1 , 4 {1,1,4,5,1,4}1,1,4,5,1,4单点查询最小值答案输出1 11对于第二次操作查询1 , 1 , 4 , 5 , 1 , 4 {1,1,4,5,1,4}1,1,4,5,1,4最小值答案输出4 44对于第三次操作查询1 , 1 , 4 , 5 , 1 , 4 {1,1,4,5,1,4}1,1,4,5,1,4单点查询最大值答案输出5 55对于第四次操作查询1 , 1 , 4 , 5 , 1 , 4 {1,1,4,5,1,4}1,1,4,5,1,4全局查询最大值答案输出5 55。解题思路采用S T STST表稀疏表解决静态区间最值查询问题首先预处理对数数组L o g LogLog通过递推快速得到每个数的二进制对数避免查询时重复计算再构建两个S T STST表s t m i n st_{min}stmin​和s t m a x st_{max}stmax​其中s t m i n [ i ] [ j ] st_{min}[i][j]stmin​[i][j]表示从i ii开始长度为2 j 2^j2j的区间最小值s t m a x [ i ] [ j ] st_{max}[i][j]stmax​[i][j]表示对应区间最大值通过递推式由j − 1 j-1j−1层的子区间最值合并得到j层的最值对于每次查询计算区间长度的对数k kk将查询区间拆分为两个长度为2 k 2^k2k的重叠子区间取其最值作为结果最小值查询取两个子区间最小值的较小者最大值查询取较大者该方法预处理时间复杂度为O ( n l o g n ) O(nlogn)O(nlogn)单次查询时间复杂度为O ( 1 ) O(1)O(1)适配n nn和q qq达5 e 5 5e55e5的大规模输入高效精准输出每个区间的最值。代码内容#includebits/stdc.husingnamespacestd;typedeflonglongll;typedefpairll,llpii;constll p1e97;constll N5e510;constll M20;ll st_min[N][M];ll st_max[N][M];ll Log[N],arr[N];ll n,q;voidinit_log(){Log[1]0;for(ll i2;in;i)Log[i]Log[i/2]1;}voidbuild_st(){for(ll i1;in;i){st_min[i][0]arr[i];st_max[i][0]arr[i];}for(ll j1;jM;j)for(ll i1;i(1j)-1n;i){st_min[i][j]min(st_min[i][j-1],st_min[i(1(j-1))][j-1]);st_max[i][j]max(st_max[i][j-1],st_max[i(1(j-1))][j-1]);}}llquery_min(ll l,ll r){ll kLog[r-l1];returnmin(st_min[l][k],st_min[r-(1k)1][k]);}llquery_max(ll l,ll r){ll kLog[r-l1];returnmax(st_max[l][k],st_max[r-(1k)1][k]);}intmain(){if(!(cinnq))return0;for(ll i1;in;i)cinarr[i];init_log();build_st();ll op,l,r;while(q--){cinoplr;if(op1)coutquery_min(l,r)endl;elsecoutquery_max(l,r)endl;}return0;}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询