下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
稀疏表ST表算法NOICSP_SACM_ICPCST表(SparseTable)算法ST表名稀疏表,常用來(lái)處理區(qū)間最值查詢。是一種離線算法,即不可以邊更改邊查詢。ST表用到了倍增思想。ST表預(yù)處理時(shí)間O(NlogN),單次查詢時(shí)間復(fù)雜度為O(1),總時(shí)間復(fù)雜度O(Nlog(n+m))。RMQ問題RMQ問題即區(qū)間查詢問題,是指對(duì)于長(zhǎng)度為n的數(shù)列a[],更改或查詢數(shù)列a[]中下標(biāo)在[i,j]區(qū)間內(nèi)的值。如果查詢的是最大值或最小值,一般可以用ST表算法解決。需要強(qiáng)調(diào),ST算法只適用于靜態(tài)區(qū)間求最值。如果是動(dòng)態(tài)的,還是使用線段樹。一維ST表ST算法是基于倍增思想設(shè)計(jì)的算法。ST算法記錄從每個(gè)元素開始的連續(xù)長(zhǎng)度為2^k的區(qū)間中元素的最大值或最小值。類似于動(dòng)態(tài)規(guī)劃,規(guī)定f[i,j]表示從第i個(gè)元素起連續(xù)2^j個(gè)數(shù)中的最大值或最小值,即記錄區(qū)間[i,i+2^j-1]中元素中的最大值或最小值。由定義可知,f[i,j]一定包含偶數(shù)個(gè)數(shù)字,故把f[i,j]平均分成兩段,從i到i+2^{j-1}-1為一段,i+2^{j-1}到i+2^j-1為另一段,長(zhǎng)度均為2^{j-1}。如下圖:于是得到狀態(tài)轉(zhuǎn)移方程為:f[i,j]=max{f[i,j?1],f[i+2^(j?1),j?1]},其中f[i,0]=a[i]。初始化代碼如下:對(duì)于一個(gè)查詢區(qū)間[l,r],只要找到一個(gè)或者多個(gè)2的整數(shù)倍長(zhǎng)度的區(qū)間覆蓋[l,r],然后取這些區(qū)間最大值的最大值就是答案了,最小值同理。把[l,r]覆蓋完整的一種辦法是把區(qū)間的長(zhǎng)度按照二進(jìn)制分成多個(gè)2的整數(shù)倍區(qū)間,顯然這些區(qū)間是不重疊的。不重疊的要求造成這種分割增加了算法常數(shù),一次查詢可能就要求幾十次最大值。另一種方法為了減少分割出的區(qū)間數(shù)量,允許區(qū)間重疊,這樣所有的情況下最多只要兩個(gè)區(qū)間就好了,見下圖所示:假設(shè)要求區(qū)間[l,r]中序列a[]的最大值,找到一個(gè)數(shù)k滿足2^k<r-l+1,即k=log(r-l+1)/log(2),此公式為對(duì)數(shù)換底公式。這樣,可以把這個(gè)區(qū)間分成兩個(gè)部分:[l,l+2^k-1]和[r-2^k+1,r]。這兩個(gè)區(qū)間恰好是剛剛已經(jīng)初始化好的,前者對(duì)應(yīng)的是f[l,k],后者對(duì)應(yīng)的是f[r-2^k+1,k]。這樣,只要看這兩個(gè)區(qū)間的最大值或最小值,就可以知道整個(gè)區(qū)間的最大值。這個(gè)算法的高明之處不是在于動(dòng)態(tài)規(guī)劃的建立,而是它的查詢,它的查詢效率是O(1)。例題:ST表模板給定一個(gè)長(zhǎng)度為N的數(shù)列,和M次詢問,求出每一次詢問的區(qū)間內(nèi)數(shù)字的最大值。輸入第一行包含兩個(gè)整數(shù)N,M,分別表示數(shù)列的長(zhǎng)度和詢問的個(gè)數(shù)。第二行包含N個(gè)整數(shù),依次表示數(shù)列的第i項(xiàng)。接下來(lái)M行,每行包含兩個(gè)整數(shù),表示查詢的區(qū)間。輸出包含M行,每行一個(gè)整數(shù),依次表示每一次詢問的結(jié)果。例題:求區(qū)間內(nèi)最小值一個(gè)含有n項(xiàng)的數(shù)列,求出每一項(xiàng)前的m個(gè)數(shù)到它這個(gè)區(qū)間內(nèi)的最小值。若前面的數(shù)不足m項(xiàng)則從第1個(gè)數(shù)開始,若前面沒有數(shù)則輸出0。輸入第一行兩個(gè)整數(shù),分別表示n,m。第二行,n個(gè)正整數(shù),為所給定的數(shù)列ai。輸出一行n個(gè)整數(shù),第i個(gè)數(shù)為序列中ai之前m個(gè)數(shù)的最小值。此題與上題相類,樣例及代碼略。ST表小結(jié)ST表在信息學(xué)競(jìng)賽中獨(dú)立使用的情況很少見。特別是在高級(jí)別比賽中更是很難見到直接考
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合探究 堅(jiān)持歷史唯物主義 反對(duì)歷史虛無(wú)主義 說課稿-2023-2024學(xué)年高中政治統(tǒng)編版必修四哲學(xué)與文化
- 全國(guó)川教版信息技術(shù)八年級(jí)上冊(cè)第一單元第1節(jié)《認(rèn)識(shí)數(shù)字故事》說課稿設(shè)計(jì)
- Module 1 Unit 2 Its at the station(說課稿)-2023-2024學(xué)年外研版(三起)英語(yǔ)四年級(jí)上冊(cè)
- 8《安全記心上》《平安出行》說課稿-2024-2025學(xué)年道德與法治三年級(jí)上冊(cè)統(tǒng)編版
- 第十二課 端正人生態(tài)度2024-2025學(xué)年新教材七年級(jí)上冊(cè)道德與法治新說課稿(統(tǒng)編版2024)
- 塑料人造革的生態(tài)修復(fù)技術(shù)考核試卷
- 2025年度木雕工藝品制作木工勞務(wù)合作合同范本3篇
- 2025年度安置房租賃轉(zhuǎn)售合同模板2篇
- 代理商業(yè)務(wù)模式創(chuàng)新與實(shí)踐考核試卷
- 公證員信息安全法律事務(wù)考核試卷
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調(diào)研考試(一模)語(yǔ)文試卷(含答案)
- 第7課《中華民族一家親》(第一課時(shí))(說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治五年級(jí)上冊(cè)
- 急診科十大護(hù)理課件
- 山東省濟(jì)寧市2023-2024學(xué)年高一上學(xué)期1月期末物理試題(解析版)
- GB/T 44888-2024政務(wù)服務(wù)大廳智能化建設(shè)指南
- 2025年上半年河南鄭州滎陽(yáng)市招聘第二批政務(wù)輔助人員211人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 山東省濟(jì)南市歷城區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)模擬試題(無(wú)答案)
- 國(guó)家重點(diǎn)風(fēng)景名勝區(qū)登山健身步道建設(shè)項(xiàng)目可行性研究報(bào)告
- 投資計(jì)劃書模板計(jì)劃方案
- 《接觸網(wǎng)施工》課件 3.4.2 隧道內(nèi)腕臂安裝
- 2024-2025學(xué)年九年級(jí)語(yǔ)文上學(xué)期第三次月考模擬卷(統(tǒng)編版)
評(píng)論
0/150
提交評(píng)論