青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 7, comments - 13, trackbacks - 0, articles - 37
   :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理

樹型動態規劃

Posted on 2008-10-16 08:51 歲月流逝 閱讀(668) 評論(0)  編輯 收藏 引用
關于傳說中的"樹型動態規劃"在討論題目的時候CC提及過。最近有幸找到一篇論文,相當激動,發現這個東東也比動態規劃本身更容易理解。

先來看一個比較有挑戰性的題目:)

戰略游戲

Problem
Bob喜歡玩電腦游戲,特別是戰略游戲。但是他經常無法找到快速玩過游戲的辦法。現在他有個問題。
他要建立一個古城堡,城堡中的路形成一棵樹。他要在這棵樹的結點上放置最少數目的士兵,使得這些士兵能了望到所有的路。
注意,某個士兵在一個結點上時,與該結點相連的所有邊將都可以被了望到。
請你編一程序,給定一樹,幫Bob計算出他需要放置最少的士兵.


Input
第一行為一整數M,表示有M組測試數據
每組測試數據表示一棵樹,描述如下:
第一行 N,表示樹中結點的數目。
第二行至第N+1行,每行描述每個結點信息,依次為:該結點標號i,k(后面有k條邊與結點I相連)。
接下來k個數,分別是每條邊的另一個結點標號r1,r2,...,rk。
對于一個n(0<n<=1500)個結點的樹,結點標號在0到n-1之間,在輸入數據中每條邊只出現一次。


Output
輸出文件僅包含一個數,為所求的最少的士兵數目。

------------------------------

這個題目是04年高二準備NOIP的時候看到過,當時打死沒有想出有效的解決方法。然后就拿著題目去問我們廖老師,廖老師一拿到題目題目還沒看完,立馬給出了解決方案:不會考這么難的題。于是這個題目也就遺留了下來,沒想到事隔這么多年以后又重新見識了這個題目,倍感親切,呵呵~。

這個題目看上去想圖論,貪心是明顯錯誤的。用動態規劃的思想可以很有效地解決。就看你能不能看出來是動態規劃。就像楊瀟說的:動態規劃這類題,別人一說就明白,自己就很難想到。
在給出這個題目的狀態轉移方程之前,我們先從更簡單的樹型動態規劃入手,看看其他一些題目。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


二叉蘋果樹

題目
有一棵蘋果樹,如果樹枝有分叉,一定是分2叉(就是說沒有只有1個兒子的結點)
這棵樹共有N個結點(葉子點或者樹枝分叉點),編號為1-N,樹根編號一定是1。
我們用一根樹枝兩端連接的結點的編號來描述一根樹枝的位置。下面是一顆有4個樹枝的樹
   2   5
    \ /
     3   4
      \ /
       1
現在這顆樹枝條太多了,需要剪枝。但是一些樹枝上長有蘋果。
給定需要保留的樹枝數量,求出最多能留住多少蘋果。


輸入格式
第1行2個數,N和Q(1<=Q<= N,1<N<=100)。
N表示樹的結點數,Q表示要保留的樹枝數量。接下來N-1行描述樹枝的信息。
每行3個整數,前兩個是它連接的結點的編號。第3個數是這根樹枝上蘋果的數量。
每根樹枝上的蘋果不超過30000個。


輸出格式
一個數,最多能留住的蘋果的數量。

------------------------------

分析:因為樹是二叉的,所以狀態轉移方程很容易寫出,
我們用a[i][j]描述樹,f[i][m]表示第i個節點下,共保留m個樹枝的最大蘋果數目。
方程:f[i][m]=mas{ f[L][n]+f[m-n-2]+a[i][L]+a[i][ R]} 0<=n<=m-2 其中L,R為i的左右子樹

選課

[問題描述]
在大學里每個學生,為了達到一定的學分,必須從很多課程里選擇一些課程來學習,在課程里有些課程必須在某些課程之前學習,如高等數學總是在其它課程之前學習。現在有N門功課,每門課有個學分,每門課有一門或沒有直接先修課(若課程a是課程b的先修課即只有學完了課程a,才能學習課程b)。一個學生要從這些課程里選擇M門課程學習,問他能獲得的最大學分是多少?


輸入:
第一行有兩個整數N,M用空格隔開。(1<=N<=200,1<=M<=150)
接下來的N行,第I+1行包含兩個整數ki和si, ki表示第I門課的直接先修課,si表示第I門課的學分。若ki=0表示沒有直接先修課(1<=ki<=N, 1<=si<=20)。


輸出:
只有一行,選M門課程的最大得分。

------------------------------

分析:這個題目是一個普通的樹,關鍵步驟就是把這個普通的樹轉換為一顆二叉樹,并且處理的時候特殊處理一下右子樹。我自認為普通樹轉化為二叉樹以后很難處理各個節點的輩份關系,但是對于這個題目來說,如果節點1,2,3都是節點0的孩子,那么轉換后便成了這樣:
    0                         0            
  / |  \       ---->         /
1  2  3                  1-2-3
輩份雖然變了,但是還是有辦法處理的。
方程:f[i][k]表示第i個節點下總共選擇k門課的最大得分。s[i]表示課程i的得分。則
f[i][k]=max{ s[i]+f[i.L][j]+f[i.R][k-j-1] , f[i.R][k] } (0<=j<k)
其中后邊那個f[i.R][k]就是處理轉換為二叉樹時的關系的。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

看到這里,樹型動態規劃應該可以有個初步了解了,那么我們回到最初的那個題目“戰略游戲”。
分析:首先選定一個節點作為根,然后從葉子向上DP,對于每個節點來說,分別記錄它放士兵和不放士兵,其子樹的最少士兵數。如果該節點放士兵,則不會制約它的子樹和父親,但是如果不放士兵,則會其子樹和父親都會影響。所以在設計動態轉移方程的時候要有開闊的思路。
方程:f[v][0],f[v][1]分別表示節點v沒有士兵和有士兵時,該子樹中最少的士兵數。方程分兩個
f[v][0]={ ∑f[v.Son][1] }   //若該節點不放士兵,則它的孩子都放士兵
f[v][1]={ ∑min{ f[v.Son][0], f[v.Son][1] }+1 }    //若該節點放士兵,則它的孩子可以放士兵也可以不放

這樣問題便完美解決了,時間復雜度O(n2)

下面再來一個題目作為思路擴展,和剛剛的題目類似:


沒有上司的晚會

背景
有個公司要舉行一場晚會。
為了能玩得開心,公司領導決定:如果邀請了某個人,那么一定不會邀請他的上司
(上司的上司,上司的上司的上司……都可以邀請)。


題目
每個參加晚會的人都能為晚會增添一些氣氛,求一個邀請方案,使氣氛值的和最大。

輸入格式
第1行一個整數N(1<=N<=6000)表示公司的人數。
接下來N行每行一個整數。第i行的數表示第i個人的氣氛值x(-128<=x<=127)。
接下來每行兩個整數L,K。表示第K個人是第L個人的上司。
輸入以0 0結束。


輸出格式
一個數,最大的氣氛值和。

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产日韩美| 欧美理论电影在线观看| 亚洲久久视频| 久久九九精品| 欧美一区二区三区免费视| 欧美韩国日本一区| 久久综合久久综合久久| 国产精品亚洲美女av网站| 亚洲精品视频免费| 在线观看亚洲视频啊啊啊啊| 午夜精品久久久久99热蜜桃导演| 日韩一区二区电影网| 美女久久网站| 蜜臀av国产精品久久久久| 国产日韩精品一区二区三区| 一区二区三区免费网站| 99视频一区| 欧美片第一页| 日韩亚洲不卡在线| 一本久久a久久精品亚洲| 欧美国产成人精品| 91久久久久久久久| 99精品国产99久久久久久福利| 久久综合中文| 亚洲国产99| 日韩网站在线观看| 欧美日本亚洲| 9久re热视频在线精品| 亚洲素人在线| 国产精品亚洲美女av网站| 亚洲永久在线观看| 欧美一区二区三区精品| 国产欧美日韩综合| 久久成人免费网| 美女诱惑一区| 亚洲人成在线观看| 欧美日韩一区二区三区四区在线观看| 亚洲精品亚洲人成人网| 亚洲小说欧美另类婷婷| 国产精品永久免费视频| 欧美专区18| 欧美激情中文不卡| 一区二区精品国产| 国产精品家庭影院| 久久久91精品国产| 亚洲国产精品久久久久秋霞蜜臀| 一区二区三区久久精品| 国产精品色网| 老色批av在线精品| 一区二区欧美日韩视频| 久久精品人人爽| 最新中文字幕一区二区三区| 欧美午夜无遮挡| 久久精品色图| 一区二区日韩免费看| 久久久夜精品| 99综合电影在线视频| 国产日韩在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲影视在线播放| 可以看av的网站久久看| 日韩一二三在线视频播| 国产欧美 在线欧美| 欧美成人午夜激情在线| 亚洲婷婷国产精品电影人久久| 老司机成人在线视频| 亚洲一二三区精品| 亚洲黄色一区| 国产日韩欧美在线播放| 欧美另类久久久品| 久久精品亚洲热| 一区二区日韩免费看| 欧美r片在线| 欧美在线视频一区二区| 日韩亚洲综合在线| 在线精品视频一区二区| 国产精品一卡| 欧美精品九九| 久久综合九色综合欧美狠狠| 亚洲欧美日韩国产中文| 日韩视频亚洲视频| 欧美国产日韩一二三区| 久久久999精品免费| 亚洲欧美日韩国产成人| 亚洲美女免费精品视频在线观看| 国产综合色一区二区三区| 国产精品高潮呻吟久久av黑人| 欧美ab在线视频| 久久久国产一区二区三区| 午夜在线视频一区二区区别| 亚洲乱码国产乱码精品精天堂 | 夜夜嗨av一区二区三区网页| 很黄很黄激情成人| 国产拍揄自揄精品视频麻豆| 国产精品多人| 欧美色欧美亚洲高清在线视频| 免费看av成人| 美日韩在线观看| 久久色在线观看| 久久久久久久综合| 久久国产精品久久精品国产 | 欧美国产视频日韩| 麻豆精品91| 另类尿喷潮videofree| 久久久www| 欧美自拍偷拍| 久久精品一区四区| 久久久久.com| 久久精品官网| 久久人人97超碰人人澡爱香蕉| 久久久久久久久久看片| 久久久精品视频成人| 老牛嫩草一区二区三区日本| 久久综合九色欧美综合狠狠| 麻豆精品视频在线观看| 欧美激情第六页| 欧美日韩一区二区三| 国产精品久久久久久久浪潮网站 | 欧美在线免费播放| 久久精品一区二区| 麻豆国产精品一区二区三区| 欧美ed2k| 欧美视频在线观看 亚洲欧| 国产精品久久国产三级国电话系列| 欧美亚日韩国产aⅴ精品中极品| 国产精品白丝av嫩草影院| 国产欧美日韩麻豆91| 影音国产精品| 日韩午夜在线视频| 亚洲欧美卡通另类91av| 久久久99国产精品免费| 欧美福利在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | 久久永久免费| 欧美激情在线狂野欧美精品| 国产精品高清一区二区三区| 国产午夜精品在线| 亚洲激情国产精品| 亚洲视频中文字幕| 久久久久欧美精品| 亚洲韩国日本中文字幕| 亚洲一区二区三区精品视频 | 性色av一区二区三区| 老司机精品福利视频| 欧美视频一区二区三区四区| 国产亚洲精久久久久久| 日韩视频一区二区在线观看 | 欧美日本一区| 国产亚洲欧美一区二区| 亚洲人成网站在线播| 亚洲在线视频免费观看| 久久综合九色综合久99| 999在线观看精品免费不卡网站| 欧美夜福利tv在线| 欧美日韩免费高清| 亚洲第一黄色| 欧美制服丝袜第一页| 亚洲国产婷婷香蕉久久久久久| 亚洲欧美中文日韩v在线观看| 欧美激情综合色| 韩国亚洲精品| 香蕉久久夜色精品| 亚洲美女黄色| 免费人成网站在线观看欧美高清| 国产伦精品一区二区三区高清| 99热这里只有精品8| 免费欧美在线视频| 亚洲欧美视频在线| 欧美日韩中文字幕在线| 亚洲欧洲一区| 欧美成人综合| 久久久免费精品| 国产欧美日韩精品在线| 亚洲男人天堂2024| 日韩一区二区精品| 欧美高清在线视频| 亚洲经典一区| 欧美成人免费小视频| 久久午夜影视| 极品少妇一区二区三区精品视频| 欧美在线播放一区二区| 中文在线资源观看视频网站免费不卡| 欧美电影电视剧在线观看| 亚洲福利国产精品| 美女日韩欧美| 久久亚洲欧美国产精品乐播| 狠狠色噜噜狠狠狠狠色吗综合| 久久成人一区| 欧美一级艳片视频免费观看| 国产精品午夜在线观看| 欧美一区二区精品久久911| 亚洲影院污污.| 国产欧美视频一区二区三区| 午夜精品视频| 亚洲欧美日韩在线播放| 国产午夜精品视频免费不卡69堂| 久久国产精品久久久久久久久久| 午夜一区不卡| 黄色av成人| 欧美激情1区2区3区|