下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、的動物解題【問題描述】給定數(shù)列a1, a2, , an,給出Q 個問題,其中第i 個問題具有如下形式:(Si,Ei)(其中Sii,ajai(規(guī)定 an+1=+)。請在 O(n)的時間復(fù)雜度內(nèi)求出 f1.n。通俗的說,fi就是近最大值”問題)ai 后面第一個比 ai 大的數(shù)的。(故而作者稱之為“最假設(shè)fk+1.n已經(jīng)求出來了,下面考慮求fk。ak+1,ak+2, an 這些數(shù),如果存在i,j(k+1=ij=aj,那么 aj 就顯然沒有意義了。把 無 意 義 的 數(shù) 都 去 掉 , 設(shè) 剩 下 的 數(shù) 的ai1ai2ai3ait。如果aki2it ,則 否則 ak=ait,因為 k=ait dot
2、t-1; fk=at;tt+1; at=k; end;i數(shù)組實際上就是一個棧。每個元素至多進棧一次、出棧一次,所以算法時間復(fù)雜度是 O(n)。以上算法有一個缺點:需要用一個 O(n)的棧作為輔助空間。其實不難發(fā)現(xiàn) fit=it-1, fit-1=fit-2,,fi2=i1。因此可以對算法進行如下改造:fn+1+;for in downto 1 do beginfi=i+1;while afi=ai do fiffi;end;這樣就在 O(1)的空間、O(n)的時間復(fù)雜度下,完美的解決了“最近最大值”問題?!緦υ瓎栴}的分析】把所有的區(qū)間按照S 值排序(用基數(shù)排序,空間復(fù)雜度為 O(n),時間復(fù)雜
3、度為O(n+q))。不妨設(shè) S1=S2=S3=Sq。因為不存在區(qū)間包含關(guān)系,必然有E1=E2=Eq。首先求(S1,E1)的最大值:max1S1while fmax1=E1 do max1fmax1;算法的原理很簡單。首先假設(shè) max1=S1 是最大值,然后考慮 max1 之后第一個比它大的數(shù)。如果這個數(shù)還在區(qū)間內(nèi),就更新 max1fmax1;否則說明 max1肯定是S1,T1里面的最大數(shù)了。然后考慮求S2, T2的最大值。一個自然的想法是模仿上面的算法: max2S2while fmax2=E2 do max2fmax2;如果max1=S2 呢?這時候就有冗余運算。因為max1 是S1.T1的
4、最大值,所以肯定也是S2.T1的最大值。因此S2.Max1這一段就沒有必要重新求一次了,可以改進如下:max2maxS2,max1 while fmax2T2 怎么辦?事實上這是絕對不可能的!否則 T2max1=T1T2=S1。綜合起來就是S1=S2=T2T1存在包含關(guān)系!這和題目條件是的!所以 max1肯定不大于T2。這也是為什么能夠直接寫max2maxS2,max1的原因。(“不包含”這個條件是很關(guān)鍵的,如果去掉這個條件,就只能采用標(biāo)準(zhǔn)的RMQ 算法來做,那么編程復(fù)雜度就要大得多;而且效率也大打折扣。)對于之后的區(qū)間S3.T3, S4.T4, ,Sq,Tq都可以類似的操作,形式化的代碼如下
5、:max00;for i1 to Q do beginaxSi,maxi-1 while fmaxi=Ei domaxifmaxiend;下面分析一下復(fù)雜度。把max1, max2, , maxq 看作連續(xù)移動的指針,根據(jù)算法,指針必然是不回溯的,所以求max數(shù)組的時間復(fù)雜度是 O(n)。綜合排序、“最近最大值”問題、輸入輸出,總的復(fù)雜度是:O(n+q)。值得說明的是,它的系數(shù)和 RMQ 算法比較,是相當(dāng)小的。實際運行速度也很快。至此問題就完全解決了?!拘〗Y(jié)】這個問題是很具有“性”的因為它“長得很像”標(biāo)準(zhǔn) RMQ 問題。如果選手一不就可能走上 RMQ 的不歸路。雖然 RMQ 算法能夠很好的解決此題,但是需要花費難以估計的時間和精力來編寫一個復(fù)雜的程序事實上,作者的程序僅僅 70 行,在 20 分鐘之內(nèi)即可完成。關(guān)鍵的變化在于“區(qū)間不包含”。讀者可以自己試一試:一旦出現(xiàn)了區(qū)間包含,問題就變得不那么簡單,本文介紹的方法也就
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 政府采購智能能源監(jiān)測設(shè)備合同
- 版武漢勞務(wù)合同協(xié)議
- 簡易住宅買賣合同模板
- 云端服務(wù)優(yōu)化合同
- 招標(biāo)文件合同范本編寫樣本
- 精挑細選材料采購合同
- 打印機買賣合同樣本
- 膠合板市場銷售合同
- 抵押合同解除法律協(xié)議
- 企業(yè)購買協(xié)議書模板
- PPT模板中華餐飲美食烤魚宣傳PPT課件
- 含氮有機化合物-胺、酰胺、尿素、丙二酰脲、胍、磺胺、吡咯、吡啶和嘧啶的結(jié)構(gòu)及化學(xué)性質(zhì)熟悉
- PN結(jié)特性和玻爾茲曼常數(shù)測定
- 工廠電氣試卷及答案
- 國家開放大學(xué)金融本科《成本管理》章節(jié)測試參考答案
- JJF 1175-2021 試驗篩校準(zhǔn)規(guī)范_(高清-最新版)
- 作文考試專用稿紙 (A3完美打印版)
- 人工鼻應(yīng)用及護理
- 如果歷史是一群喵—悅讀分享
- 鋼絲繩吊裝時最大允許吊裝重物對應(yīng)表
- 高中生校園環(huán)保行為養(yǎng)成教育策略研究
評論
0/150
提交評論