日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 1561 The more, The Better

發布時間:2024/8/24 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 1561 The more, The Better 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://acm.hdu.edu.cn/showproblem.php?pid=1561

樹形dp+有依賴的背包。==分組背包。

思路:

思路:參考《背包九講》

分組背包:將物品分成k組,每組中有若干件物品,并且這些物品兩兩互斥(既對于第 i 組物品,只能選該組物品的其中一個,或者一個也不選),求在一定的背包容量下如何選得最大值。

依賴背包:對于要選物品b,必須在選擇a的情況下才能選,這樣的背包問題稱為有依賴的背包。普通的有依賴的背包很容易轉換成分組背包來做,假如要選c必須先選a,要選b也必須先選a,若a,b,c的價值分別為Va,Vb,Vc,容量分別為Ca,Cb,Cc,則可以將這三件物品構成一個分組,假設最大容量為V,對b,c在容量為(V-Ca)(因為a必選)的條件下進行01背包,得到在這樣的容量下的最優解。其中最優解分別存在dp[0...V-Ca]+Va,把這些最優解當成新物品來用(這些新物品構成一個分組,因為這里已經包含了對b,c的所有選擇情況了,不同的選擇肯定是互斥的)。把所有依賴關系進行分組后,直接分組背包的做法。(所謂普通的分組背包,其實也就是若b依賴a,則b不能再被其他物品依賴,既不存在先選a才能選b,先選b才能選c這樣的鏈式關系。)

然而,往往存在一般情況,也就是題目給出的就是鏈式關系。若把不依賴于任何物品的物品當作根節點,那么這樣的鏈式關系可以構成一棵樹,沒被其他物品依賴的物品就是葉子。這就是基礎的樹形DP,若某節點的所有孩子都是葉子,那么這個節點跟它的孩子可以構成一個分組。

注意:len=1開始,容量為m+1。

The more, The Better

Time Limit: 6000/2000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4889????Accepted Submission(s): 2885

Problem Description ACboy很喜歡玩一種戰略游戲,在一個地圖上,有N座城堡,每座城堡都有一定的寶物,在每次游戲中ACboy允許攻克M個城堡并獲得里面的寶物。但由于地理位置原因,有些城堡不能直接攻克,要攻克這些城堡必須先攻克其他某一個特定的城堡。你能幫ACboy算出要獲得盡量多的寶物應該攻克哪M個城堡嗎? Input 每個測試實例首先包括2個整數,N,M.(1 <= M <= N <= 200);在接下來的N行里,每行包括2個整數,a,b. 在第 i 行,a 代表要攻克第 i 個城堡必須先攻克第 a 個城堡,如果 a = 0 則代表可以直接攻克第 i 個城堡。b 代表第 i 個城堡的寶物數量, b >= 0。當N = 0, M = 0輸入結束。 Output 對于每個測試實例,輸出一個整數,代表ACboy攻克M個城堡所獲得的最多寶物的數量。 Sample Input 3 2 0 1 0 2 0 3 7 4 2 2 0 1 0 4 2 1 7 1 7 6 2 2 0 0 Sample Output 5 13 注意:len=1開始,容量為m+1。 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int dp[205][205],n,m,len;//dp[x][y]表示以x為根節點,選擇了j件物品 int head[205]; struct node {int now,next,val; }tree[205]; void add(int x,int y,int v) {tree[len].now=y;tree[len].val=v;tree[len].next=head[x];head[x]=len++; } void dfs(int root) {int i,j,k,son;for(i=head[root];i!=-1;i=tree[i].next){//說明有孩子,往下搜,直到搜到葉子為止son=tree[i].now;dfs(son);for(j=m+1;j>=1;j--)//背包容量為M+1,是因為多條鏈式關系,不能構成樹,加入一個根節點0,其價值為0,所以有M+1的容量。for(k=1;k<j; k++)//k<j,就是相當于V-Ca<V,a是必選的,容量為1dp[root][j] = max(dp[root][j],dp[root][j-k]+dp[son][k]+tree[i].val);//dp[to][k]是已經搜過的,是新物品} }int main() {int i,a,b;while(~scanf("%d%d",&n,&m)&n!=0&m!=0){len=1;//len=0,是根節點,一定要注意。memset(dp,0,sizeof(dp));memset(head,-1,sizeof(head));for(i=1;i<=n;i++){scanf("%d%d",&a,&b);add(a,i,b);}tree[0].val=0;dfs(0);printf("%d\n",dp[0][m+1]);}return 0; }

?

轉載于:https://www.cnblogs.com/cancangood/p/3667314.html

總結

以上是生活随笔為你收集整理的HDU 1561 The more, The Better的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青草av在线 | 天天干天天操心 | av青娱乐| 亚洲天堂免费视频 | 国产精品日日摸天天碰 | 99精品视频在线观看 | 成年人免费网站视频 | 日本黄色片. | 亚洲女人18毛片水真多 | 超碰不卡 | 中文字幕第四页 | 伊人伊人伊人伊人 | 少妇被爽到高潮动态图 | 亚欧成人在线 | 久操av | 亚洲熟女乱色一区二区三区久久久 | ww欧美| 熟妇大屁股一区二区三区视频 | 老子影院午夜伦不卡大全 | 国产做爰xxxⅹ久久久精华液 | 天堂√在线 | 伊人久久五月 | 四虎国产精品成人免费入口 | 国产精品1234 | 国产成人视屏 | 成人性生交生交视频 | 青青草国产一区 | 国产在线欧美日韩 | 国产黄色免费观看 | 日韩综合一区 | 男女调教视频 | 亚洲精品中文字幕在线播放 | 日韩三级小视频 | 午夜日韩av | 成人av入口 | 男人肌肌桶女人肌肌 | 伊人蕉久影院 | 久久久久久久久久电影 | 欧美s码亚洲码精品m码 | 欧美一区二区三区免费视频 | 熟妇五十路六十路息与子 | 黄色精品一区二区 | 欧美一级片网站 | 制服丝袜第一页在线观看 | 国产操视频 | 国产欧美久久久久 | 中文字幕一区二区在线老色批影视 | 日韩大片免费 | 日韩精品国产一区 | 91jk制服白丝超短裙大长腿 | 最好看的中文字幕国语电影mv | 国产精品69久久久久 | 91视频你懂的 | 五月婷在线观看 | 国产freexxxx性播放麻豆 | 性生活视频网站 | 日本三级aaa | 公妇借种乱htp109cc | 韩国中文字幕在线观看 | 高清不卡一区 | 亚洲黄色在线网站 | 伊人影院在线观看 | 国产精品污 | 91精品国产免费 | 国产精品免费网站 | 九九热这里有精品 | 一区二三区 | 日本一级免费视频 | 天堂素人约啪 | 欧美综合网站 | 午夜写真片福利电影网 | 亚洲欧美日韩精品永久在线 | 人妻丝袜一区二区三区 | 欧美影院一区 | 国产亚洲性欧美日韩在线观看软件 | 婷婷综合在线视频 | 国产伦精品一区二区三区妓女下载 | 欧美深性狂猛ⅹxxx深喉 | 欧美日韩亚洲在线观看 | 亚洲AV无码成人精品区明星换面 | 日本三级视频网站 | 手机在线播放av | 成人精品亚洲人成在线 | 黄色片子免费看 | 男人资源网站 | 精品欧美一区二区精品久久 | 国产成人tv| 欧美激情一区二区三区在线 | 蜜桃一区二区三区 | 骚虎视频最新网址 | 99re超碰| japanese强行粗暴 | 天天搞天天干 | 久久久青草 | 日韩一区二区三区在线视频 | 污污网站在线观看 | 少妇激情偷人三级 | 中文文字幕一区二区三三 | 国产素人在线观看 |