何森《淺談數據的合理組織》_第1頁
何森《淺談數據的合理組織》_第2頁
何森《淺談數據的合理組織》_第3頁
何森《淺談數據的合理組織》_第4頁
何森《淺談數據的合理組織》_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

淺談數據的合理組織四川省綿陽南山中學何森【摘要】信息學是一門高深的學科,它正在高速的發展。隨著信息學的發展,其題目中的關系也變得越來越錯宗復雜,給我們解題帶來困難。對數據進行合理地組織,正是我們面對上述題目時的一種有效手段。本文用幾個經典例題從數據的結構和順序兩個方面進行合理組織,達到優化模型或是提升算法效率的目的。介紹了“合理組織數據”在信息學中建立模型和優化算法方面的一些應用,例題包含了動態規劃、數據結構、圖論類型的題目。目的在于引起讀者對于數據的合理組織的關注,并在今后的解題中能積極并靈活地運用這一手段。【關鍵字】組織數據數據結構動態規劃圖樹序列【正文】【引言】一個簡單的例子:給出N個數字(數字會比較大),然后給出一些詢問,詢問一個數字有沒有在給出的N個數字當中。當然我們有很多已知的辦法:HASH表、TRIE、預排序+二分查找……這些算法都是通過對數據進行合理的組織而起到了減少工作量的作用。不同的是HASH表和TRIE是利用數據形式的重新組織,而預排序+二分查找是通過對數據順序的重新組織來達到優化算法的目的的。我們組織數據,主要就是通過從“形式”和“順序”這兩個角度來考慮。事實上,這兩個方面在實際運用中往往不是獨立的,通常需要聯合運用。我們已經學習了很多經典的數據結構,它們都是合理組織數據的表現。在優化算法中有很好表現。對數據組織的合理化,不僅在我們設計算法時能起到優化程序效率的作用,有時,我們在建立解題模型時,合理地組織數據可能給我們提供新的思考角度,從而優化解題模型,例一就是這樣的一個例子。勻[例肯一]拘金明剩的預瘡算方讀案及上其加楚強版使金明蒙的預薄算方叉案裝【題沃意描徑述】崇給出躬N沃個物割品,夏每個騰物品太都有嶺一個構權值旬(<都50哭00逼0)叫和一憂個價笑格取(<愿10燙00司0)死。我炭們稱酬可以宅直接鏈被購海買的稼物品京為主病件,沫稱不三能被琴直接匠購買辰的物森品為固附件恨,附挖件只殖有當咽其主濕件被鐵購買域了才遣能被聯購買停,一元個主駐件最憑多有魚兩個洞附件盒,附術件沒困有下屢一級科附件激。母任務零臘購買盤一些省物品陣,總廣價格根不超暮過M和,使是得被辯購買寇的物朽品的斜權值忍之和奴最大鉆。字N<濁32巷00桶M世<6蜘0知【卵簡要撲分析蠻】綱我們榆很容媽易聯孫想到非經典嚷的動炮態規裁劃之時0濱-膛1背書包問古題。羅但是得題目假與背扔包卻陳有一醬些差此別:件附件螺不能探被直房接購秧買。煎【糾對數莫據的乓初步尸組織姥】弱主件顯與附悉件之察間是弦樹形喜的關授系。蕉組織勁一下單數據秧,如蝦下圖勸:以(圖模1)止如圖史所示婚:誠主件使1沒蛋有附職件,惱主件縣2有畫兩個士附件幻,主所件3舞只有被一個羽附件屢。壇【梳數據膚組織邁方案層一杏】勞假設慕我們康忽略圾數據饅的特暑殊性際,單鎖從樹勿結構轎考慮恭,我飄們容第易想昏到的際一個族算法記是:姓給所戒有主凍件加漠上一訓個賺“睬級超玉主件娘”聯,把例原來步的所勁有主栽件都袖變成電“嚇超級野主件顏”鬧的附費件,犯如下奪圖:宋(沾圖2咬)蠻【痰算法麗一玻】丹這樣雞,在休這棵屯樹上塵,我剩們可蟲以設泛計一下個動古態規揀劃算掉法:吵免定義受:僚co醉st己[a爹]表如示a丑節點餡所代愛表的車物品預的價具格顆sc徐or拐e[慨a]興表示纏a節鄰點所能代表警的物扒品的諒得分提狀態仰f[鉛a]沾[b稱]表文示以壞節點介a為休根的潮子樹斷,總卡共花棒費不書超過歌b元朋的最援多得際分。矛狀態際轉移計方程氏:倘f[栽a]免[b術]=木Ma層x{禁f[勸c1賽][搬b1徐]+博f[戴c2島][費b2衫]+壤f[策c3連][兵b3侄].織..益f[玉c技k]動[b員k]維}+殘sc傅or帥e[傾a]北;堅其中候ci艷為a澡的子趟節點緞;選∑玩bi青=b圍-c慨os博t[檢a]污;須這樣臟枚舉裁的效輪率顯乖然不嶼高!疑我們銅可以循用左拖兒子完右兄競弟表禽示法夸來表植示這麗一棵半樹,懼將原嘴樹轉豎化成絡二叉池樹,筑則我歸們在悲進行至狀態令轉移蕉的時滔候只爐用考照慮給殼左兒警子分忍配多厭少錢歷。脅le火ft唇[a玉]表資示a君的左難兒子銷ri謊gh憲t[性a]墻表示和a的筍右兒欺子暑f[加a]系[b改]=互Ma揚x{趁Ma蝕x{鑄f[荒le也ft舍[a步]]臘[b諷le徑ft昂]+夢f[旬ri有gh殼t[弓a]豈][遍b-襯co習st忙[a桐]-姻bl敲ef肯t]咳}+躁sc呀or妥e[首a]夫,f憑[r滿ig索ht火[a鋤]]賤[b安]}傅這樣什我們芒可以滿得到殃一個筍理論參見《算法藝術與信息學競賽》貪食的九頭龍中對算法復雜度的分析萬復雜指度為枝O(站NM衛2纖)怪的算需法,桐但是省對于升本題躺的數板據范閥圍卻來說幸,這筋個復掀雜度承并不福太心參見《算法藝術與信息學競賽》貪食的九頭龍中對算法復雜度的分析墳【牛數據素組織對方案瞧二幻】謙上面懸我們吩把本士題同郊0墳-洲1背仰包進狹行了斯類比勇。發類現兩封道題城之間枕的差到別:董附件槳不能燦被直童接購崖買。疏顯然鮮,如茅果題怖目中方沒有爪附件第,那監么本礙題即艷為標陷準的岔01坐背包卡問題蛾。沒我們隙回到點題目占并考礦慮其辣特殊同性:永1.輝附件罰沒有怖附件埋。恰2.齡每個但主件敲最多道只有伏2個虎附件慰。痰這樣耕,顯工然對把于(央圖一波)中浪每一臘組(產主件貫+附昆件)裂,可矛以作添為整善體考高慮。斑對于仆每一木組,雷可能勻的購鬼買方納案最勇多只譜有:欣1.稍什么舉都不讀買往2.清只購耍買主周件劫3.許購買拔主件戒和附舟件1情4.訓購買治主件加和附泛件2硬5.糊購買籌主件略和兩龍個附屠件肝這樣籠,我虛們呀可以賞借鑒引經典懸的0調1安背包駝動態幅規劃徒,把箏每一地組看虎作一虛個對賭象,趁取值鑰和花刮費對蕉應側最多躲五種佛。動【熊算法仗二異】暖co缸st餃[i政][繼k]勺表示輝分組儀后第信i個加對象無的第埋k種蔥購買計方案顏的花妥費。兼we扁ig療ht密[i漢][旬k]絕表示憲分組各后第蠻i個土對象淺的第蠶k種青購買附方案確的總詞權值華。拒F[餡i]些[j爬]表檢示前跳i個鳥對象遮最多著花費晌j元助,能奮得到識的最康大權洽值。為F[堡i]壺[j謀]=辨ma晴x(百F[貓i-毛1]瞧[j披-c晝os咽t[凈i]飄[k六]]絡+w虛ei鑄gh病t[遲i]滿[k禮])窗;雕其中攜1<躁=k蘋<=非5稍且番co揮st忍[i煉][輕k]命<=笑j湯助狀態旨總數湖:O褲(N障M)圓轉移邪代價寺:O屬(1飾)求這樣居,我夫們得加到了謠一個快時間身復雜柏度為慘O(怠NM圍)的膝優秀慌算法奴。律郁悶液的金切明耀【婦題意談描述換】罩給出粉N個襖物品今,可漿以直感接被膊購買跪的稱罷為主錢件,習而不扯能直浴接被鞏購買缺的稱滴為附巷件,鄰附件傻只有倆當其至主件監被購該買了愁才能酬被購及買,晚一個扒主腿件可孔以有佛任意羽多個刺附件菌,附具件沒聯有下胃一級扒附件違。每弦個物林品都晉有一同個權槽值(花<5慘00羊00糟)。債任務慢洋購買慌一些挎物品墾,總剃價格棗不超毀過M雜,使忘得被膜購買雞的物犧品的紛權值忌之和爐最大事。全N<恒60芝M<見32杠00己【胡問題涌分析闖】預題目坡放寬咱了富“捧一個膠主件寒最多蝶可以校有兩仔個附遺件做”攪這個枕限制奧,其貨它條窩件不成變。陳自然燒,我思們山當然駕嘗試夢用原其題中白的算幫法來計套本卡題。作實際培上,放這時像候原杰來的掀算法陳1依牽然適筋用,復復雜去度仍評為O苗(N昏M掩2獄)。今但是恭對于凈利用晉原題劍條件蜓特殊姻性的兔算法鈔2,嫌一個散對象激的取橫值可漁能達資到N道的組屠合級土別,扒所以晶我們政大可輩放棄究對于喬算法海2的動討論凍。包我們涉是否圈有合往理的歐組織量數據聲的辦押法呢陪?左【秩數據趴組織慚方案估三覆】有重新盛安排棵這些負物品低的順焰序,舉使得雷每個鞭附件緊都緊栽跟其斥主件繡,保炭證其鮮左邊蟲的第維一個研主件懇就是桑它附發屬的膊主件混。銀如下彈圖:燭這樣研做的蒜好處才是:桂一個捎附件臨能被光購買艙的必籮要條材件就攝是在枕其前漁面的剩最近忌的主杠件被族購買懂了。賴看似客和原靜來的襲條件亦沒有端什么殲變化判,但而是崇實際爐上闊我們蹤給節診點的施位置南已經凳加上行了一掙個限狼制。夏原本閘樹上飄的問伐題經項過我漏們嚇“晶合理介地組膊織數檔據以鵝后棒”精,成錯功地返轉化飼成了灑一個絨序列日上的廉問題宗。礦【錄算法術3炊】禽這樣專組織給數據忙以后濟,我沿們利吹用前著面提騎到的扶條件勇“緒一個最附件鑒能被法購買醉的必膨要條桐件是渠其前漫面的速最近飽的主逗件被低購買猾了員”勉,可副以輕耕松地部設計陜動態陵規劃處算法檢:昌定義困:籃co柿st籌[i羽]表啦示第近i個環物品齡的價緞格嘗we子ig母ht承[i序]表蛙示第劈i個遼物品棉的權妻值鈴F[應i]愛[j贊][榆k]荷表示局從第碧i個諒物品爽到第掘n個請物品銅,最韻多花真費j或元,載第i艷個物雪品前座的主銀件有主(k按=1腔)沒鑼有(壩k=對0)構被購滔買。些分情巾況進拴行狀綿態轉告移:城情況終I:流第i麻個物習品是轟主件蟻F[旋i]撈[j垮][郵k]蘇=M心ax價{F統[i鐮+1搶][怠j-私co盟st柱[i秒]]會[1陣]福+w虎ei濟gh水t[臂i]喉攏(j參>=續co撈st福[i服]煮)抄,F棋[i言+1番][朵j]主[0何]}培情況匙II腹:第搬i個騎物品電是附阿件堂密如僻果晉k=準1冤F碌[i吳]鄙[j裁][雁k]言=事Ma劣x{肚F[杜i+怠1]帳[j楊-c跟os問t[剃i]狡][淋1]猴+w敬ei躁gh塊t[馬i]撞鏟(j鈴>=儀co里st逆[i陸])收,F激[i國+1既][著j]義[1虧]}弦汁責如果稅k=曾0削F多[i稻][巧j]北[k替]=蒜F判[i洪+1藝][鎮j]輪[0才]答狀態粱總數念:O瓦(N熟M)昆轉移散代價滅:O慢(1街)交時間痛復雜彈度同蔥樣是呆O(塵NM撥)。廳很郁芬悶島的金煉明佛【征題意治描述撞】隆給出涌N個驢物品擱,可嬸以直隱接被衣購買兼的稱脅為主若件,蜜而不撇能直挎接被趕購買尖的稱而為附瓣件,且附件勉只有水當其棒主件失被購缺買了蹄才能層被購販買,陵一個雨主件翼可以唉有任病意多小個附候件,飛附件廢可以照有多片級,閑也就酒是說旁如果誠某個決物品艇是附瘦件,玻那么泉它還盆有可枯能有叼附屬邁于它洗的下饑一級拔附件售。籍每個傳物品測都有賢一個戶權值波(<卷5監00童00撫)。溝任務捆百購買舍一些刻物品癢,總垃價格研不超羽過M師,使椅得被添購買嗎的物膜品的磚權值紋之和饑最大辨。減N<辟60唱M<挨32痛00碼【壩問題勁分析末】流現在上題目思在原蛇題的君基礎廚上不育僅放藏寬了巧附件筍的個收數,精還放喂寬了其附件櫻的層窄數類,圓如圖蔽所示份:監從上爐圖中版,我蛛們可通以對洋本題零有一獲個感鋪性甜的認遷識男:兔關系券又疑“舞寬泄”罰又污“艙深遺”困。干我們應依然片試著范從前弊面的抖題目踏中尋精找算挑法:托我們遙可以套直接峽套用伴算法蘆1,基因為具該算煙法正嗚好將留數據繼作為瓦樹結繩構來遭進行儲處理衣。而虎利用咸了題蔬目特襖殊條刻件的盲算法支2和利算法片3,誕直接沉套用巖算法印肯定驕是行局不通格的。源但是階他們萬都很妻有語啟發漿性:矛拋棄蓮樹形搶的結唱構,朱重新塌組織容成線昏形。辟現在糊的題亮目是老不是急也可粗以類雹似解段決呢霜?字【曉組織千數據墊方案綱四誰】錄算法唉3相趁對來旦說比漸較算變法2癢更加常一般藥,所茶以曠現在汪我們而再回凈過頭瓶來研述究一鴨下算省法3防,希錢望在溝分析遷過程畝中找胖到一駐些靈揪感葬。撫回憶身算法裙3的汗思路逮:斷把同旺在一廳個組乳的主柄件放煎在附險件的警前面末,利斧用動援態規振劃睡“棵加一境維岔”剝的思躲想,副順利渠地實需現了倆將問摘題轉摟化到攤序列籮上來凝。固關鍵昏字:弄主件味在前建序灑列麻動態陵規劃減我們避聯行想到映利用盤樹的謙先根萬遍歷嶄序,洪而且滲正好使滿足鳴上面宣的關悠系。朱但是承這樣閥有什幻么好青處嗎皆?還行能進凡行動郵態規禍劃嗎絨?深怎樣哄設計覽狀態田才能悟傳遞肝父敬節點賭的狀繳態呢摸?敵我們腹再回窗過去研看算現法3勺的狀波態轉區移:系假設館當前熄狀態挽是F值[i說][罩j]賽[k蛋],忙且k眉=0家。銹如果厘i是掌附件捉,那腔么實耽際上壘在到部達下澤一個泊主件的以前慨,i盛后面悶的附翻件是筑都不秧會被扔購買串的。崗上圖更中,勾對于此附件亦a,擁實際孫上一景個k稻=0謹的狀嗎態傳悲遞下場去是望沒有騙意義傾的,臣因為努附件嚼b和佳附件導c也等必然鵲不能軍被購傅買。贈思考計并總岸結上奸面的語結論邪:胸對于邁一個慮主件揉,我樓們如陪果不瀉購買魂的話汽,那諒么其類附件抗我們載都不邀用考爆慮,赴而直襯接我“兔跳

兄”暮到下機一個召主件脾。踐我們裝把它戶應用繞到本躬題中軌來娘:餐重要芽結論好論我們據考慮殖一棵菠子樹摸的時桂候,略如果曾我們捎不購她買其坡根謀節點徑,那眼么其蝕子樹示中所跪有耀節點艦我們支都不部必討龍論了慧。倆這一浙結論蛙似乎趙很顯錦然,私但是川我們有并不買是要邀在樹慕結構勁中用匯這一姓結論筐。正褲如上京面提伏到的延,我歐們要蹄在樹快的先反根遍俘序上壺進行竿動態切規劃收,而筆這一呢結論夢正是趁我們撒成功連的關儉鍵。久【淡算法幼4準】敏根據摸前面疾的思奪考,可我們傷先依受次求鎖出每瓦棵樹首的先括根遍悠歷序絕,并恒保存進在同釘一個東序列合li權st軌[]刃中。晚為了六利用區上面伸的結掉論睜,我貨們還因要求性出以蒼節點構i為賞根的飼子樹盛的節匠點總秧數c期ou守nt咱[i休]。席現在緞我們豬來設泰計動怪態規資劃算持法:看定義定:飽co寨st浸[i蓄]表災示第廉i個思物品信的價孟格艱we愁ig邊ht壩[i所]表堤示第吐i個膽物品式的權研值攜F[瘡i]情[j憤]表物示從慎第i悶個物促品到斑第n從個物徒品,功最多亭花費況j元蟲,能格得到訓的最程大權虹值和球。清狀態公轉移彎:筆對于到一個少節點睡,我啟們考防慮是辣否購班買它碎:尸購買滲:那痰么我飾們繼稱續考丸慮它商后面巡的節僻點旱不購塊買:候那么副我們轟跳過表它的栗子孫碼節點殃方程穿如下鬧:緣F[談i]言[j穴]=宋Ma辣x{鄉F[鍵i+怎1]削[j六-c器os玩t[碌li瘋st陜[柳i雜]富]]插+w擺ei挑gh密t[腹li祝st窮[i蛛]線],島F[止i+羞co繳un撐t[浙li宮st騾[鹿i貍]慕]]匹[j較]}霞這個劈算法哭依然貪是O灘(N顯M)毯的,懂很完秤美地殊解決央了本透題。撓并虧且礙,泥這個狗算法憲模型負對于饅以前薄有很槍多陷類似承的樹納形動旬態規清劃題守目魯都適敵用處,這料是我非們桑在坡分析慈本題榜的過仇程怒中票的意巨外收喂獲吳。魯【常小結詞】積這是黃一道綠很有悉啟發許性的徑道目拐。諒反思籠這一窮題的四幾個船不同嘆難度臉的版鄙本璃,不宏難發炸現我槐們最爭終都睛用線竹形模姨型上顯的動刷態規仆劃取容代了療容易購想到畫的樹龜形動傻態規低劃算遵法。勸我們家再次漏分析句前面痕的算遙法,增試圖患發現劃其中晚內在房的一慨些東烘西胞。茫其實扣我們走這個吉題主帆要就軟是對芬于樹陪形結肯構和常線形舒結構舞的選肝擇,鄰所以爬我們搬對比露算法律4絕和算康法1兩:不拌難發牙現,逃相比煙算法亡4美,算務法1羨其實福多出冰的操曠作就顏是枚豪舉分墾配給混左兒導子多腸少錢飾。耕而在走線形隊的序吹列上鑒,沒要有用墾的錢欣自然庫地被粱分配痕給后磁面的瞧元素賢。也誤就是道說:餡樹的畢形態光決定雞了在雖狀態錫轉移聾的時丟候要宜進行球額外暈的枚失舉。秤這正憲是樹概形動唱態規戚劃算編法的忘瓶頸囑所在梳!徐而我雕們利喝用樹恢的先鑼根遍莖歷序廈將友轉樹鋪形約轉化廳為線摟形序愧列擦,成肉功地凳避免寶了樹錢形形粥態的負限制謎,正歇是合編理地傭組織四數據伸。咸我們魄得到禁的啟罷示:沒憑摸第一碧感覺唇想出盤來的攏模型峽不一令定是行最好鋒的,此對于惱一個李題目位,我箱們充贈分挖葡掘其槐數據膜關系潑并加賴以利醬用,惰合理涌地組桿織數券據并荒且嘗失試用暗已有服的知叛識來孟解決掏,推劫陳出擋新,溝才能李不斷第地進屠步。臺前面男我們卷在樹干據的屋組織伸結構罷上進藏行了梁合理唐地安繼排,匠成功恩地對辜于每護一次做加強悶的題蟲目都蹦設計交出了攔優秀估的算漫法,痰下面槳,我幅們來迅看一暢看瓦“帽順序攏”贊的合饞理安筒排的墓例子洪:抖[例每二]珍樹的吊果實濾【智題意揉描述杰】譯給菌出一技棵有帥N個紗節點淋的有畜根樹笛(根租為1訊號節迷點)浙,每酒個節善點有掉權值捷。帳要求竭對于寇每一公個節憶點,桑求:撒1.蜘其子康樹中添權值亦比該貞節點蘿大的選節點皺總數兼2.段樹上柳除其句子孫繁節點緩外茶比該弊節點錯大的怖節點翠總數心3.腳從根閑節點扁到該鎮節點漁路徑精中比手該節漫點大悄的節暢點總濕數圖其中斬(1勉<=稿N<槍=1欠0始5膝)蜓【票問題輝分析跟】嚼對于時要求汁的后寇面兩渣個值言,我話們很泛容易禿想到栗O(蝴Nl基og挪2殲(N快))收的算糧法:遠樹上律除其擱子孫個節點繡外比蜓該節成點大垃的節搖點總獨數劍:瓶直接富排序仍,在勤待統悄計節仆點前揭的與過該節司點權根值不不同的獄個數單再減適去問蔑題1昆的答貢案容即為往所求期。艇從根惜節點瞇到該弄節點虛路徑瓣中比惕該節騙點大購的節映點總字數:謝以權膊值為麥關鍵責字構反造線鞠段樹逃(若票權值腹大可慌行離跟散化脈處理尖),儉深度煉優先竹遍歷貍樹上件節點陪,用悅棧記震錄下那到節損點的諒路徑隙,并柔把當追前節刪點插射入線爹段樹祥,在續線段大樹中決我們集記錄山區間脂的元響素個辰數,姻當前帥節點槍權值聞到最皂大權怎值這柴個區位間中唱元素贈個數倚即為欣所求亮,我共們再蟻遞歸佳處理賓子樹熄,在滋子樹踐訪問冶完畢舉后橋還須內把該怕節點閃從線乖段樹討中刪泄除。盜我們羨最大矮的困重難手在于揀求蝦:其冒子樹瑞中權業值比錯該節話點大乳的節擇點總萌數恩O(騰N禾2感)憂的樸就素統級計方敵法是猾很容訪易猜想到扒的神,但性是球本題特的數旨據規排模達就到1廊0曉5五,O澇(N武2劈)越的復捎雜度求顯然候太高衡。我從們自固然折想到軍利用著線段端樹、可樹狀尸數組豐這些嘩優秀辨的統則計數姜據結草構麻來進面行題毅目中頭要求生的統環計任絞務吊。計但是頸這些掛數據究結構裝都是伐用于錯線型駁序列紗統計關的,綠并且叔似乎閱沒有研改造澆版本饒用于亮樹形越結構賺。貴既然渠沒有車辦法川改造年數據攝結構胳,那帆么我閱們轉系換數利據形威態窩——杰把樹涂轉化圍為序孩列再侮進行遺統計衫,科先根婦遍歷洞序摸即是營我們桃轉換市后的桶理想穿形態郵。腎我們居給出頸一個劫例子漢:墨同一辦棵子攔樹變構成縱一個捆連續壟的區錯間裝,這模正方逗便了獲我們再的統許計。云我們橡定義旨:農一個周元素盤所在確子樹釋在遍教歷序細中構串成的撲區間飽叫作哨元素坡所在高區間爹。扁元素帳相比彈較都閣指其火權值防大小北相比長較。柳現在坦問題挽已經君轉化夜成為駕:串給出具一個絲序列并,每息個元仔素有下權值桿。對傳于每苗一個刊元素跌,懼統計甩一個掃區間黨中有葉多少叛元素鹽比術該元聰素大就。抓這正慘是我盜們比唉較熟暫悉的梁序列傅上的陳統計敲問題巡。下電面我搜們研那究轉煙化后福的問蒙題:挪【糕數據暮組織烈方案納一陽】翁我們朝不對趨數據娛進行堤更深字入煙的組澤織,谷直接持利用美先根盟遍歷陜序,盟強制別用數復據結孩構來宣進行責統計澡。掙當然伙我們遭可以亭構造紗出一茂種比弊較有后效的禾嵌套恥數據頭結構好——飾以有娛序表陸為元孤素的環線段句樹,孤如圖欄:亂稠其中當,線刪段樹工的每集一躁個節北點是于對應礙區間識的元校素以烤權值支為關接鍵字誘的有刷序表脂。壺這樣袍,預隙處理送可以擺用一超個歸壘并排牌序,洽求得死樹上惜所有戀區間駱的有餡序表將。時能間復駁雜度讀為O通(N庭lo串g駕2負(N奧))冠。增假設再現在稠我們從要統的計一瀉個區巷間赴(長挪度為暖L)結。窄那么塊我們會可以桂用吉lo膽g利2么柴(照L)剩的時渣間找數到該海區間幫的所柜有分潔解區蜓間(盾不超絹過掏2邪lo返g蓬2殼芹(閱L基)個魂)。盆然后薄在對刃每個友分解貨區間犁進行州處理忘:二墓分查坡找在釣該區阿間中珠有多古少元薪素的籠權值井比指睛定的福元素所的權奸值大錢。途然后罪把所疑有分懸解區搬間中跌比給閱定元作素大菌的元頃素個務數加贊起來奶,即攜為所談求。顧這樣閱每統胸計一厭個元袖素的爺復雜題度為中O(吼lo飽g漸2穗2練(N腔))忽。總釋時間己復雜胃度為仇O(萄Nl離og討2列2終(N慨))墻,空句間復形雜度孫為螞O(予Nl慚og趟2擇(N類))想。悄【安數據晃組織映方案抗二釘】賭我們啄從呆特殊算情況財考慮份:假芬設我課們在丈先根囑遍歷煤序中雀,需削要統賭計元概素榮k,案并仿且伍k恢所在鞏區間估里的胞元素守都比罩它大塞。膏顯然豎,這你時國比k腿大的旨元素然個數坐就是擾k所食在區輩間中跳的元銀素個肝數。貼統計螞區間盯元素騾個數鈔我們自可以猴直接跳利用頑線段嘗樹和肢樹狀獄數組適。升那么壺我們樂如何菜保證援當前廳列表膠中的南元素喂權值慧都比霉k的濤權值倆大呢箭?接我們疼重新屯組織驗數據訴:所糠有元滋素按祥從大想到小熊的順匆序排遠序。匹然后俱依次擔處理邀每一項個元比素:誕先取歪得所弟在區餃間的廢元素跡個數蟻,再浸將該隆元素繳插入疲。岸我們境一個派很巧守妙的壇方法按:從洽大到飄小地椒向線襲段樹存里面守加入江元素蒼,然漿后統泥計區務間個頭數。苦從大賤到小權保證雅了現技有的劑所有億元素巖都比充待插痛入的隱元素骨大。蜓所以忠區間超中的吃元素薄個數壯即為槳比待霸插入哈元素獸大的沾元素紋個數界。于按照沸從大債到小岸的順療序之坡前先姥對其規區間乳進行標統計益,利柄用線寶段樹泊或樹吐狀數孤組。回這樣將,我叛們得蠻到了匹復雜倡度為欺O(耍Nl懶og畫2(圖N仆))走的算鳳法。汗WC雹20安05沃何林打同學拔的論禮文中斧介紹描了此丘題的膝另一殊解法多,復透雜度隸也為喝O(叢Nl司og臂2(刑N)鼻)。電主要扶思想可是也奔是利濁用樹促的前敗根遍方歷序覺,不爽同的宋是他揉的算賀法是絨基于蕉容斥昂原理吐,需碰要正行反兩碌次遍鮮歷樹懲,而降我們量這里狼介紹理的算擋法是糟利用扛了失“挽組織伐數據府的操監作順漁序街”誦這一細手段膏來實哪現的默。有紡興趣信的同彎學可緒以參劫見何鼓林同尺學2澤00裳5年閉的論接文。畫“錫形心態輕”決和私“懇順蓬序特”攔這兩產種命數據縮組織前對象盈在上丹面的彈兩個爭例題情中分工別對旋我們攻進行盒了表溝演。同下面凳我們艙再來撲分析誘一個跟更經碌典的健題目仆:執[例順三]舅航線糧規劃廊【題祝意描村述】捧給出綿一個牧有N廟個點探M條坐邊突的無撓向圖悅,兩盯點之賣間可皺能有兩多條驅邊,尖然后典給出徑Q嫩個命睬令,旱命令妖共有犬如下懇兩種喊:跳1裙A蘇B盾表示養刪除勾一條吧A到圣B的裕邊刪2豬A番B戶表示芹詢問浴AB嚼間共男有多循少條伏關鍵毛邊(煌即刪宋除改歌邊后族使得兄AB歇不連尚通)滅數據轉保證縫任意參時刻述圖都幕是連膝通的莫。遵1秧≤稍毫N棵仙≤禮3皂*務1壤0郊4親1盒≤臨寧M揭爛≤查1素0妖5畜1綁≤是盡Q像興≤嗓1斃0瀉5販【問層題分咳析】珍顯然失,我憑們可撤以輕雅松地廳設計集出一斷個樸控素的蛙算法萬:齒用隊盤列保倍存所田有邊術,當訊遇到露刪邊帆操作取時加嗓上刪濤除標辟記艦(利愁用H頁AS劉H我決們可喪以做吩到O姨(1鞏))到,遇懸到詢毅問操侵作時重則枚優舉刪者邊然團后用聯并查驗集判帥斷A橡B是確否連揪通。塔這個尿算法恩處理奉刪邊坡的復禾雜度把為O傾(1截),佩處理摧詢問矛的喘復雜扇度為蠻O(并M稻2李)仗,空奏間復老雜度拜為O裳(M

培+N貪)。頂我們耀經過擠思考遺后發妹現,從事實伙上所簡謂的狼關鍵扣邊都隸是圖餐上的占橋(洗由題立目中妥的描巡述我沿們很注容易臭想到部)。碼而橋堵的數油量是棄O(遷N)死級別益的。脫利用白上面咬的結耍論,們我們儉顯然家可以冊先用互O(牽E)倉的時勸間求弱出圖時中所倆有的土橋,呈然后雅再用修O(摟N引2令)的房時間畏求出魔AB懶間的歐關鍵誕邊的屈數量欠。竄然而息,我燒們所蔑優化激后的矛程序般依然肝有很扭高的幻時間糟復雜階度,逐根本井不能掀勝任稿此題響。燈我們退繼續傷思考畜:粥樹上婚的任招意兩女點間搖只有增一條貧路徑共。鑒也就逝是說向樹上庸的任挽意一昆條邊穿都是突關鍵頂邊。艇這跟吩我們跳的題及目有充什么欠關系軟呢?隸顯然悲,同某一個次重連盆通分黑量燒(塊揭)篩中的稅任意逝兩點制之間拉都沒鐮有關洞鍵邊騰。悟并且遠,對壁于兩驗個不津同的信重連膝通分饞量M齊1,扒M2名:在竄進行駝刪邊怠操作裂以前憶,詢矛問任僵意分凍屬這遮兩個布分量唉的兩且點豆A拋∈臘M1森,B剝∈崇M2涼,詢額問的梁結果蟲都是遵一樣食的,送即結逐果只絹跟分與量間仇的邊暢有關顫系。可也就智是說溉,一畫個重笑連通輩分量留可以竟當作英整體攻來考蘇慮。萌【噸初步響組織彩數據錢】弟由前棄面的眼思考簽,我磚們把粱圖中捐的重阻連分派量都鞋“盜縮恒”繪成一仇個點款。構刷成一弊個新殃圖,獵顯然晃,新吉圖是輝一棵川樹。箭如下藝:麥這樣殃,對趣于A雹B的帳詢問室:圈若A槍B屬損于同偷一個資重連墾通分就量,匹則沒陜有關第鍵邊晴。私若A邪B屬蒼于不廁同的靜重連建通分厲量,蛇則轉哄化為挑求兩糾個樹段上節鹿點的室距離福。勝求樹匠上兩拉個節燕點的攻距離故我們疤有現蓬成的轉辦法蓮,食定義腳:辯De懼pt泰h[霸A]桃為節醬點A閘的深纏度階LC例A(籌A,惑B)京為節辰點A底和節鋒點B屈的最裂近公神共祖伙先。喬那么敏AB衣間的乎距離優Di界s(葡A,碧B)游=D齊ep驅th艷[A熄]+激De創pt斑h[拉B]草-2論*D貴ep卻th邁[L存CA番(A起,B腰)]狐注意誕一個獵細節芽,即坦我們父把一搶個重繼連通意分量狐“纏縮門”掠成一戴個節宜點時站,事貴實上館是把您分量顧里面默的所蔬有點抄的深膜度都港設為鑒它們赴中最倒小的棋那個惰深度炸,即壘往上失提升攪(在挑同一嬸個重恥連通構分量值中以熄深度飄最小叫的點艱作其辦它點閑的代厚表)舉。簡如此攻一來昂,對永于一螞個現謙成的尚圖,膠我們冤可以梨很快處地求凈出兩亂點間胸的關釀鍵邊萌數量奪了。防預處賊理即孩為一府個求閘重連半通分翠量的成操作燭,時龍間復失雜度要為礦O(歉M蒙)。衛而對肝于每拔一個縣詢問抖我們閃都可喂以O慎(1割)完綁成回噴答。票但事補實上紡這道牲題目鄰中的債圖是公隨時疑變化北的(掌有刪購邊操駐作)闊,這蓄樣我栽們就寶不太祝好處嬌理了采。性如果法每次君都求重一次修塊的育話,易復雜濫度會醋很高俱。撤我們碧思考犧怎么澆處理沃這個紫問題翁:刪偶邊操淺作會步導致式塊的盞分裂恨。我活們當首然可礎以只令對被菌刪邊可所在安的塊藝進行萍處理疼,但椒是最學壞情南況下肝還是弊和每月次求竹一次藝塊是矛一樣攏的。贊【粘進一烏步組主織數領據燭】束現在切的問瓜題是械我們茄需要創快速勵地將淺一個漸塊進豬行重旬新求鋸塊,殺似乎虹是沒究有現其成的悼辦法棍。但嚷是如悼果操伍作不緒是刪棉邊,濫而是多加邊鍛呢?遞顯然捐,在濱一棵觀樹上威加上湯一條地邊,唯必然暢產生岸環,筋伴隨像著的課就是陳新的饒重連點通分先量產而生。送我們銷只需宰要將炎幾個賓有關墊的塊肚進行總合并致。換云句話姜說,慣就是鋤把一品些點礎的位鏈置抬鬼高拳,并昌把它躁們合趴并成剃一個勵塊御。如羽下圖合:燭比如內我們浩加入女一條效邊A順B,窯T=濟LC顛A(亞A,永B)裳,那錘么我珍們的曾環上渾的節殃點即虛為A遺到T備的路義徑中大和B細到T休的路踐徑中食的節約點。際我們侄需要賄把環玻上的窄節點例的深譽度都跪減小喜到D個ep肢th開[T撞],亭并且鐮,我息們提煎升一學個節糞點,鍛其子斤孫節頸點也含要一貝同被騾提升盈相同唉的高磚度。掃我們磨研究俱發現面,如每果操互作是襯加邊愉的話相,我韻們似始乎可食以很新高效杠地處綁理。宰那么摸我們微當然砌可以監把操側作反站過來牛處理迅(先謹處理傷后面南的操具作)廟,這律樣就辜可以碎實現距我們退所要慌達到戀我們綱所期孩望的繭結果開——垮操作滴變為眨只有酸加邊抽和詢吸問。外現在抽我們軟來考脂慮細盈節實賢現:錘我們地需要縣用到躺LC差A,佛當然甘可以宿用中吼序遍費歷+協RM疊Q實尺現。最而且陽,加雨邊操落作并渾不影違響L冊CA產。殘然后橋我們吳還有嚷一個駱提升舍一棵歌子樹吐的高君度的勢操作排。即誤把一昂棵子愿樹的序所有這節點料的D聾et絕ph柔都減遍去同艷一個尊數。羞顯然僑,我外們可噸以求疲出樹亞的先域根遍框歷序賄。這動樣,喜同一駕棵子捕樹構下成一擱個連穗續區聯間。蝕利用晝線段部樹或折樹狀磨數組垂我們洞就可到以用攻O(迅lo它g襪2切(N禾))殊的時務間完癥成這境項操殃作。六【曉小結鍛】歇這是伏一道很很經獵典的簽題目誤。我幻們最盈初利陶用橋“扯收縮制”萄的思駱想,晚把圖冬整理谷成為召一棵春樹,緊然后駁又答巧妙讀地將袖數據股從后容往前諸處理隱,把拿原題儲中的壩“膛刪邊兵操作旨”混操作應變成泄了蕉“跳加邊鑒操作罷”棚。茂既有督“微形態灶”痛,又創有艇“志順序蘆”膊上的搞考慮鹿。掩在細倡節實掛現中嘉,我捧們又騎利用視了樹祥的兩棗大遍丈歷序南——半中序澇遍歷疤和前麻序遍總歷,頂把樹順上的仍求L究CA莖操作覆和提經升子汁樹的恐操作功變成弦了序史列上降的求潮RM臘Q操剝作和去給一靜個區營間所蝦有元鋒素減象去一挖個值酸的操伙作。滴無處葬不體堪現出嘴“殘對數虜據的崗合理告組織困”農。腥【虹總結胞】戶“電對數乒據的往合理臂組織覽”迷無處計不在畜,它侵不僅蒜僅是放一種扁手段扛,更喘是競寨賽的逃一種傷思考涌方向惹。在糾數據梳關系節越來蟲越復膠雜,慣解題腹模型罵越來問越不捉明顯勁的信掩息學綿競賽奏中,口合理星地組獎織了紀數據殼,就塑可以似說離逃成功書只有柴一步泳之遙梨了。被我們況在被默告知逐一個表很巧泄妙的測算法揉時,困感興愿趣的僵除了氧算法浮本身萬之外離,繁還有繁就是別算法緒的設建計者瞞到底共是怎魄么想鑄到這腔個算嶺法的遙。毀甚至陵,換我們爽往往雙對后殲者所肥產生脅的興釣趣類超過佛前者由。邪這正根是我太們前萄進的核動力收,思倉想的老源泉遼。隱多思坊考、眾多總沿結、晉勇于捧探索貌、不桿斷創夾新!涌【參飾考資塊料】胸《算癢法藝受術與領信息恒學競系賽》道劉欣汝佳似黃右亮珠著傲20欄05遞年國善家集桿訓隊公論文哪《數腎據關煌系的披簡化葡》何處林埋【港感謝安】掉感謝你葉詩趕富膚老師糧對我椒的指豎導和蓮幫助沾。狹感謝針古楠溪同學糞和王晌曉珂沫同學間對我孩的論型文規提出峽了很區好牧的建虛議。嶄【族附錄牌】它金明山的預耕算方鐮案NOIP2006祖【題贈目描私述】沙金明襲今天杜很開謠心,秒家里喉購置嘉的新輕房就析要領餐鑰匙套了,慘新房功里有傭一間音金明魂自己消專用娃的很哭寬敞躲的房籠間。哥更讓客他高肢興的強是,膊媽媽靜昨天旬對他帥說:吸“你辛的房曾間需玩要購鉛買哪念些物張品,暢怎么頑布置推,你社說了螞算,按只要劫不超咱過N飾元錢挑就行恐”。我今天口一早飾,金米明就今開始海做預古算了朱,他懇把想士買的栗物品沸分為壯兩類外:主狐件與蔽附件絕,附枯件是鞠從屬孫于某閱個主獎件的逆,下里表就慌是一曉些主禿件與蝴附件霧的例何子:必

主維件鋼

朗附件肌

電曠腦客

打構印機崗,掃緞描儀返

書趁柜灰

圖骨書絡

書爆桌巖

臺質燈,女文具少

工釀作椅完

無圣如果渴要買飾歸類英為附階件的演物品兆,必夾須先蜘買該姑附件左所屬龍的主嚼件。察每個跨主件皮可以猶有0消個、瀉1個考或2麥個附他件。潛附件詞不再臥有從誓屬于柏自己繞的附板件。用金明攝想買慮的東撫西很還多,埋肯定常會超塊過媽棟媽限桂定的訪N元土。于仿是,磁他把領每件膀物品帖規定訊了一拐個重鹿要度票,分岡為5核等:網用整詢數1模~5掘表示濃,第債5等殖最重辜要。有他還朵從因局特網謝上查丟到了士每件玻物品寫的價傭格(乘都是稅10雞元的殲整數駱倍)室。他鞏希望朝在不敘超過蔽N元過(可萍以等夏于N館元)病的前漫提下小,使曬每件兼物品態的價濕格與環重要水度的斑乘積舒的總謎和最冠大。梨庭設第狐j件陰物品創的價承格為叛v[灰j]旱,重腦要度蠻為w永[j關],膀共選椒中了錯k件影物品就,編蛋號依狼次為夫j1陣,j禁2,爭……呢,j寨k,癢則所姻求的遠總和桑為:炭巾v[閑j1因]*妥w[喬j1溝]+閉v[句j2諒]*垮w[鳳j2蜓]+且…盛+v寄[j英k]酸*w擺[j境k]爛。(贊其中而*為謹乘號乞)臉義請你響幫助碼金明棍設計仰一個博滿足紗要求友的購厲物單春。陜【輸緣入文徒件】健蓄輸入掙文件羅bu半dg已et平.i禍n叫的第兄1行城,為除兩個芒正整暢數,攝用一凡個空膜格隔遵開:罪穩N

初m

兵花(其抽中N敢(<圍32從00銅0)手表示拔總錢庸數,蔑m(翅<6絞0)特為希猾望購寒買物叢品的適個數亞。)牌壇從第趁2行懷到第閘m+匯1行朽,第苗j行典給出倆了編穴號為先j-見1的糖物品掩的基同本數梢據,娃每行騾有3穗個非瓣負整豪數肅碼v

護p系

杏q

跌員(其注中v栗表示登該物謙品的煌價格鼠(v礙<1謠00起00察),睡p表孕示該調物品伏的重小要度蒜(1執~5論),弦q表舅示該墾物品錢是主稠件還序是附謊件。楊如果挺q=碗0,認表示錫該物攝品為冬主件繞,如郵果q梳>0艷,表興示該灰物品椅為附但件,闊q是唱所屬版主件兇的編執號)書【輸籃出文勢件】饒滔輸出模文件許bu禾dg即et收.o補ut織只有墻一個柜正整架數,士為不拒超過駁總錢撇數的芽物品挑的價耽格與濃重要壘度乘若積的亡總和礎的最灣大值蜜(<傷20搭00華00窗)。注【輸肉入樣資例】

超10誕00協5

截80販0口2尚0

剝40睛0巨5度1

道30忍0勾5賺1

掉40鑄0敬3車0

文50菜0渴2桃0旅【輸搏出樣獻例】

栽22碎00

奶樹的娘果實NOI2004浙江省隊選拔賽題目常【題醒目描牌述】皂森林棗中生暈長著河許多極奇特稍的果稼樹,椒它們兆不僅心外形雪獨特償,其貍果實沿更是本可口艇。這豆天,截兩只俯小蟲滔Ni丹le正h和向Ni爸xe繁d決費定一米起分廊享一翁棵果攔樹。佛他們蔽從一且直辛尤勤工待作到舊下午炮,終敘于把壓這棵異果樹狗鋸倒鼠了。茄他們銅觀察安著這辛棵果薦樹,愿果樹季開始壤端罷是露既出地各面的她根部貸,接斑著像樂其他待果樹趟一樣爪,有拜著諸歪多分珍叉(茅如圖撞3所垃示就天是一應棵果裁樹)幕,在汁每個惠分叉鎖處生退長著副果實伴,自秩然N六il襲eh概和N峰ix婦ed辟d的聚食物謙就是邊這些扭果實餓了!鑰他們像準備墊把果陸樹分夾成兩忌部分煌,每徐個蟲囑蟲得撐到各款自的遙一部曲分,訂兩分扛果樹凍的方墻法就甚是選請擇一廢個分渴叉點鞠,蟲消蟲將宮他們銹咬斷兄(自壟然分肥叉點叨上的店果實辛也被鏟扔掉走了)合,這枝樣果解樹就灰被分門成兩束部分豎(每撐個部澆分不串一定余是連轎在一盆起的鞋):橡分叉速點上鐮面的納部分場和分就叉點封的下喉面部禽分。葵Ni真le抹h偵和N裁ix屬ed傳就會麥各自批選一呼個部劑分吃印啦!巾比如略對于肝左邊拋這棵逝樹,牲如果滋他們準咬掉銳藍色紹的果擴子,掃那么柱就被式分為杏紅色助和黃哨色的復兩個石部分秤。叨考慮暖到被冬咬掉嫁的果貴子會如被浪拼費,騰他們勢想盡亡可能捕地減碧少浪章費,脈于是饅蟲蟲綠給每雹個果征子一位個美冊味值瓜,對創于每殲個果嘴子,參他們膜決定炭計算謎如果蹲咬掉幟這個像果子扶,上穩面部庭分、用下面采部分飲和從翅樹根沈到這燒個分狹叉點阿的路顧徑中說比這至個果染子更粒美味干的果束子各頁有多粒少個普。他攝們以卸此來讓選擇充最終私要被憑咬掉貸的果搭子是緞哪一踏個。導遺憾遭的是給果樹患可能挑很龐界大,狹而小行蟲幾滿乎是造不會進計算圣的,核身為婦程序虎員的段你幫軟幫他籮們吧梅。剖【輸絞入格逗式】茶輸入獄文件偷第一墻行是肢一個治整數撫n(屆n<紗=1舟05它)表稅示樹獎的分螞叉數畢(包質括樹察根)毒輸入倍文件派的第很i行央一個販數p暗i,帝表示繭分叉灶i的紗上一蘭級分升叉的暗編號涼(p子i<棋i)校。滔(1睜號分單叉即賠樹根鍬,它鐮沒有草上級息分叉適點)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論