下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Another Counting Problem解題摘要題意簡(jiǎn)述定義嚴(yán)格 n 叉樹(shù)為:所有非葉子節(jié)點(diǎn)都恰好有 n 個(gè)孩子節(jié)點(diǎn)的樹(shù)。計(jì)算深度恰好為 d+1的嚴(yán)格 n 叉樹(shù)的個(gè)數(shù)。其中,一個(gè)節(jié)點(diǎn)的各個(gè)孩子是有序的。(詳見(jiàn)原題)初步分析本題是一個(gè)計(jì)數(shù)問(wèn)題。由于樹(shù)結(jié)構(gòu)清晰的分為 d+1 層,很容易想到以層為階段進(jìn)行遞推。很明顯,除了根節(jié)點(diǎn)以外,樹(shù)上每一層的節(jié)點(diǎn)數(shù)都是 n 的倍數(shù)。而這個(gè)倍數(shù)恰好就表示本層是由上一層的幾個(gè)點(diǎn)擴(kuò)展而來(lái)的。由于樹(shù)上一個(gè)節(jié)點(diǎn)的各個(gè)孩子是需要考慮順序的,那么如果兩棵樹(shù)第 k 層上的的節(jié)點(diǎn)總數(shù)相同,那么不論樹(shù)的上半部什么形狀,下面的的部分的變化總數(shù)是相同的。因此,可以從樹(shù)的根部向下
2、進(jìn)行遞推。f(k,t)表示,深度為 k+1,且在第 k+1 層上有nt 個(gè)節(jié)點(diǎn)的嚴(yán)格 n 叉樹(shù)的總數(shù)。這樣,可以每次在當(dāng)前的樹(shù)下面加上一層,也就是在當(dāng)前最底層節(jié)點(diǎn)中選一些分叉的點(diǎn),進(jìn)而推到下一層。具體一些說(shuō),在計(jì)算 f(k,t)時(shí),需要枚舉上一層的底層節(jié)點(diǎn)個(gè)數(shù)。如果上一層的底層節(jié)點(diǎn)有 ni 個(gè),那么這種情況下本層有 nt 個(gè)節(jié)點(diǎn)的樹(shù)的個(gè)數(shù)就是 f(k1,i)乘以從 ni 個(gè)節(jié)點(diǎn)中選出 t 個(gè)節(jié)點(diǎn)分叉的方案數(shù)。遞推公式如下:1此處分析的時(shí)間空間復(fù)雜度都不包精度的復(fù)雜度。算法一算法二基本思路遞推遞推時(shí)間復(fù)雜度1O(d(nd)2)O(dlog2n)空間復(fù)雜度O(nd)O(1)其中初始條件是 f(1,
3、1)=1,而對(duì)于深度為 1 的情況則需要特殊處理,直接輸出1。否則就統(tǒng)計(jì) f(d,i)的總和(其中,1ind1),這就是最后的。時(shí)空分析一上面的遞推方法,狀態(tài)總數(shù)為 d nd。由于遞推是一層一層進(jìn)行的,因此可以使用滾動(dòng)數(shù)組,這樣,空間復(fù)雜度為 nd。時(shí)間方面,狀態(tài)轉(zhuǎn)移中,需要枚舉一遍 i,并且需要計(jì)算組合數(shù),這樣的時(shí)間約為(nd)2??梢詫?duì)組合數(shù)的計(jì)算進(jìn)行一定的優(yōu)化,完全可以從以前計(jì)算的組合數(shù)通過(guò)一次乘法一次除法得出。這樣,不考慮高精度的時(shí)間,狀態(tài)轉(zhuǎn)移的時(shí)間復(fù)雜度約為 nd。再乘以狀態(tài)總數(shù),遞推算法的時(shí)間復(fù)雜度約為O(d(nd)2)。當(dāng)然,上面時(shí)間復(fù)雜度的分析是比較粗略的。本題中,由于保證了
4、nd 不超過(guò) 210,也就決定了 n 和 d 的取值范圍有一定的限制。n 較大時(shí),d 就很小,那么狀態(tài)數(shù)就減少了,時(shí)間復(fù)雜度相應(yīng)的降低。d 較大時(shí),n 就不會(huì)很大,那么的位數(shù)就不會(huì)很高了,高精度計(jì)算的時(shí)間也會(huì)變少。因此,整個(gè)算法的時(shí)間效率是勉強(qiáng)可以接受的。深入分析但上面的算法畢竟不令人滿意,須要尋找到更好的辦法。在上一個(gè)算法中,我們是每次在當(dāng)前的樹(shù)底部加上一層,推倒新的狀態(tài)。如果換一種思路,每次將 n 棵深度不超過(guò) k 的樹(shù)(其中至少有一棵深度恰好為 k)進(jìn)行遞推。為一棵深度為 k+1 的樹(shù),根據(jù)這種思路那么如果分別知道深度為 1 至 k 的嚴(yán)格 n 叉樹(shù)的數(shù)量,如何計(jì)算深度為 k+1 的嚴(yán)格
5、 n叉樹(shù)種類(lèi)呢。問(wèn)題的關(guān)鍵在于以根節(jié)點(diǎn)孩子為根的 n 棵子樹(shù)中至少要有一棵深度為 k。如果正面計(jì)算,使用容斥原理,復(fù)雜度很高,計(jì)算也非常復(fù)雜,容易出錯(cuò)。利用“補(bǔ)集轉(zhuǎn)化”,計(jì)算出深度不超過(guò) k+1 的嚴(yán)格 n 叉樹(shù)的總和,再減去深度不超過(guò) k 的 n 叉樹(shù)方案數(shù)。也就求出了深度為 k+1 的嚴(yán)格 n 叉樹(shù)的數(shù)量。問(wèn)題在于如何計(jì)算深度在 2 至 t 之間的嚴(yán)格 n 叉樹(shù)的總數(shù)量。可以這樣理解,選出n 棵深度在 1 至 t1 之間的嚴(yán)格 n 叉樹(shù),將它們排好順序,然后讓他們成為根節(jié)點(diǎn)的孩子,這樣新的樹(shù)也就增加了一層。定義 Ck 表示深度為 k+1 的嚴(yán)格 n 叉樹(shù)總和,Sk 則表示深度在 1 到 k
6、+1 之間嚴(yán)格 n叉樹(shù)的總數(shù)。遞推計(jì)算深度在 2 至 t 之間的 n 叉樹(shù)數(shù)量時(shí),根節(jié)點(diǎn)的每一個(gè)孩子都可以選擇St2 種樹(shù),也就是方案總數(shù)為 (St2)n 種。因此,棵一的到下面的遞推公式:其中,C0=C1=S0=1,S1=2。最后的也就是 Cd。時(shí)空分析二上面的遞推算法,明顯的比第一種算法簡(jiǎn)單許多。各種狀態(tài)只有 2d 個(gè)。而由于每次計(jì)算時(shí),需要用到的值只有 3 個(gè)。因此,利用滾動(dòng)技術(shù),空間復(fù)雜度是 O(1)的。時(shí)間上,計(jì)算S 的n 次方可以采用反復(fù)平方法,那么每計(jì)算一次Ck 的值就只需要O(log2n)的時(shí)間,總的時(shí)間復(fù)雜度就是 O(dlog2n),比上一種算法大大改進(jìn)。到此,本題也就得到了很好的解決。小結(jié)解決本題的過(guò)程中,有兩點(diǎn)很需要注意:(1)從算法
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)越野車(chē)燈數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)水份測(cè)試儀數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)商用熱風(fēng)燒烤微波爐數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2031年中國(guó)酵母樣真菌同化試驗(yàn)鑒定板行業(yè)投資前景及策略咨詢研究報(bào)告
- 黃連提取物小檗堿增強(qiáng)腸干細(xì)胞功能促進(jìn)放射性腸炎再生修復(fù)的作用及機(jī)制研究
- 2025年度個(gè)人電梯公寓租賃及裝修改造合同
- 2025年中國(guó)智能服飾行業(yè)市場(chǎng)全景評(píng)估及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 2025年天然負(fù)離子發(fā)生器片行業(yè)深度研究分析報(bào)告
- 2025年度船舶股份投資與管理合作協(xié)議3篇
- 2025年度個(gè)人購(gòu)房貸款擔(dān)保協(xié)議范本3篇
- 二零二五年度無(wú)人駕駛車(chē)輛測(cè)試合同免責(zé)協(xié)議書(shū)
- 2025年湖北華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員52名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 高三日語(yǔ)一輪復(fù)習(xí)助詞「と」的用法課件
- 毛渣采購(gòu)合同范例
- 無(wú)子女離婚協(xié)議書(shū)范文百度網(wǎng)盤(pán)
- 2023中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 五年級(jí)上冊(cè)小數(shù)遞等式計(jì)算200道及答案
- 2024年廣東高考政治真題考點(diǎn)分布匯 總- 高考政治一輪復(fù)習(xí)
- 燃?xì)夤艿滥甓葯z驗(yàn)報(bào)告
- GB/T 44052-2024液壓傳動(dòng)過(guò)濾器性能特性的標(biāo)識(shí)
- 國(guó)際市場(chǎng)營(yíng)銷(xiāo)環(huán)境案例分析
評(píng)論
0/150
提交評(píng)論