版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
部分貪心在信息學(xué)競賽中的應(yīng)用北京市清華附中高逸涵1引言引入眾所周知,貪心算法是一個在信息學(xué)競賽中應(yīng)用廣泛的高效算法。但是有的時候,由于小規(guī)模針對性數(shù)據(jù)的存在,使得貪心算法不能得到正確的結(jié)果。如何解決這一問題呢?部分貪心,顧名思義,就是在問題的局部采用貪心算法,而在其他部分采用其他算法。部分貪心2引言為什么要“部分”貪心?當(dāng)問題的特殊情況普遍較小的時候,對于邊界數(shù)據(jù)采用其他算法處理可以有效的回避特殊情況的討論。部分的普通算法對于總體時間復(fù)雜度影響并不大。部分的貪心可以極大的提高算法的時間效率。3引言舉個例子:我們要最優(yōu)化目標(biāo)函數(shù)為了求得目標(biāo)函數(shù)的最小值,我們可以首先貪心的求出趨勢函數(shù)的最小值,然后在其左右尋找目標(biāo)函數(shù)的最小值。4例題[例題1]駱駝[例題2]CowRelays5[例題1]駱駝有p個人帶著x個小包y個大包穿越沙漠每匹駱駝可以背的物體只能是下列四種組合之一:不超過3個小包;不超過2個大包;1個人與不超過2個小包;1個人和1個大包。問最少需要多少駱駝?數(shù)據(jù)范圍:1<=p,x,y<=10000000006[例題1]駱駝首先,當(dāng)所有人所帶的包的種類確定以后,剩下需要的駱駝數(shù)目可以直接算出來。所以我們需要求的只是有多少個人帶大包,多少個人帶小包。很容易得到如下公式:(p,x,y分別為人,小包,大包數(shù))但由于數(shù)據(jù)規(guī)模巨大,直接枚舉顯然行不通,需要另想辦法。7[例題1]駱駝由于取整運算符的存在,導(dǎo)致直接數(shù)學(xué)計算變得比較困難。但是從整體趨勢上來看,i的增加顯然有利于ans的減小。那么按照貪心思想,我們需要盡量讓人帶著小包。8[例題1]駱駝我們很容易得到一個貪心算法:如果當(dāng)前小包的個數(shù)>=2并且還有人是空閑的,那么令這個人帶著小包,否則令這個人帶大包。很不幸,這個算法是錯誤的(x=3,y=3,p=1)。如何改進?正確性?部分貪心!9[例題1]駱駝當(dāng)人數(shù)和小包的數(shù)量都充分大的時候,令人帶小包顯然是沒錯的。經(jīng)過驗證,人數(shù)和小包數(shù)>=20的時候,一定存在一個最優(yōu)解使得存在一個駱駝帶著人和小包。算法的正確性采用調(diào)整法很容易證明。而當(dāng)人數(shù)和小包數(shù)有一個小于20時,可以采用枚舉法解決問題。10[例題1]駱駝已知樸素算法貪心算法解答大規(guī)模數(shù)據(jù)小規(guī)模特例部分貪心算法xx11[例題2]CowRelays在一個無向圖中有T條邊,每個點至少和兩條邊相連,每條邊有一個長度,詢問從給定起點到給定終點的包含N條邊的路最短是多長。數(shù)據(jù)規(guī)模:1<=N<=1000000000,1<=T<=10012[例題2]CowRelays首先看到這一題目,我們的直觀感受是,最優(yōu)解一定是這樣的一條路經(jīng):首先從起點運動到某一個點上。然后在這個點所連接的最小邊上往復(fù)運動。最后從這個點直接運動到終點。針對這一思想,我們很容易設(shè)計出一個貪心算法——枚舉一條邊做往復(fù)運動,然后從起點和終點分別向這條邊走增量最短的路徑到達。13[例題2]CowRelays所謂增量最短路徑,就是將所有邊減去基準(zhǔn)邊之后得到的新圖內(nèi)的最短路徑。ST5555477N=20基準(zhǔn)邊31111314[例題2]CowRelays這樣的貪心算法的復(fù)雜度為,但是運用部分貪心算法避免重復(fù)計算,可以將復(fù)雜度進一步降為算法瓶頸在于對于每條邊,我們都要求一次最短路,我們希望在一次中解決所有最短路問題。15[例題2]CowRelays回顧我們求最短增量路徑的過程,顯然,我們所求的最短增量路徑一定是在邊數(shù)確定時的最短路徑。因此,我們只需要用動態(tài)規(guī)劃預(yù)處理出源點到每一個點所走邊數(shù)一定時所得的最短路徑的長度,然后在貪心時枚舉最短增量路徑長度即可。部分貪心思想!16[例題2]CowRelaysST5555477N=20N/A71015……基準(zhǔn)邊32317SuvTSuvTSuvT[例題2]CowRelays貪心算法:樸素動態(tài)規(guī)劃:部分貪心:快快快慢慢慢優(yōu)勢互補!18結(jié)果[例題1]駱駝時間復(fù)雜度效果貪心算法O(1)WrongAnswer樸素算法O(N)TimeLimitExceed部分貪心算法O(1)Accepted19結(jié)果[例題2]CowRelays時間復(fù)雜度效果倍增算法較慢貪心算法較慢樸素算法很慢部分貪心算法很快20總結(jié)樸素算法 ——思路簡單,算法低效,不易出錯貪心算法 ——思路復(fù)雜,算法高效,易出錯部分貪心 ——思路簡單,算法高效,不易出錯取長補短,優(yōu)勢互補集兩家之所長,自成一體21ThankYou!22例題1正確性證明假設(shè)當(dāng)有至少20個小包和20個人時,存在最優(yōu)解使得沒有駱駝帶著人和小包。則至少有6個駱駝只帶著小包,20個駱駝帶著大包和人。那么將4個帶著小包的駱駝和6個帶著大包和人的駱駝重分配,這時我們有12個小包,6個大包,6個人,我們只需令6個駱駝帶著人和小包,3個駱駝帶著大包,這樣只需要9個駱駝即可,即我們得到了一個比最優(yōu)解更優(yōu)的解,矛盾,因此假設(shè)不成立。23
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版畫廊裝飾裝修合同范本6篇
- 2024-2025學(xué)年高中語文第一單元歷史與英雄第1課曹操獻刀訓(xùn)練含解析新人教版選修中國小說欣賞
- 2024蘋果季節(jié)性收購與加工服務(wù)合同3篇
- 2025年私人房產(chǎn)買賣合同(含合同變更程序)3篇
- 2025年度企業(yè)內(nèi)部審計與風(fēng)險控制合同
- 二零二五年度科技研發(fā)中心場地租賃與研發(fā)成果轉(zhuǎn)化合同2篇
- 2025年度泥工施工項目進度與成本控制合同
- 2024門窗購銷及綠色建筑認(rèn)證服務(wù)合同樣本3篇
- 隨機模式設(shè)計
- 2025年新能源設(shè)備出口合同范本(含售后服務(wù))3篇
- 替格瑞洛藥物作用機制、不良反應(yīng)機制、與氯吡格雷區(qū)別和合理使用
- 河北省大學(xué)生調(diào)研河北社會調(diào)查活動項目申請書
- GB/T 20920-2007電子水平儀
- 如何提高教師的課程領(lǐng)導(dǎo)力
- 企業(yè)人員組織結(jié)構(gòu)圖
- 日本疾病診斷分組(DPC)定額支付方式課件
- 兩段焙燒除砷技術(shù)簡介 - 文字版(1)(2)課件
- 實習(xí)證明模板免費下載【8篇】
- 復(fù)旦大學(xué)用經(jīng)濟學(xué)智慧解讀中國課件03用大歷史觀看中國社會轉(zhuǎn)型
- 案件受理登記表模版
- 最新焊接工藝評定表格
評論
0/150
提交評論