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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯 算法训练(四)结点选择(树形动态规划)

發(fā)布時間:2025/3/11 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯 算法训练(四)结点选择(树形动态规划) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

結(jié)點選擇(樹形動態(tài)規(guī)劃)C語言

問題描述

有一棵 n 個節(jié)點的樹,樹上每個節(jié)點都有一個正整數(shù)權(quán)值。如果一個點被選擇了,那么在樹上和它相鄰的點都不能被選擇。求選出的點的權(quán)值和最大是多少?

輸入格式

第一行包含一個整數(shù) n 。

接下來的一行包含 n 個正整數(shù),第 i 個正整數(shù)代表點 i 的權(quán)值。

接下來一共 n-1 行,每行描述樹上的一條邊。

輸出格式

輸出一個整數(shù),代表選出的點的權(quán)值和的最大值。

樣例輸入
5
1 2 3 4 5
1 2
1 3
2 4
2 5

樣例輸出
12

樣例說明
選擇3、4、5號點,權(quán)值和為 3+4+5 = 12 。

數(shù)據(jù)規(guī)模與約定

對于20%的數(shù)據(jù), n <= 20。

對于50%的數(shù)據(jù), n <= 1000。

對于100%的數(shù)據(jù), n <= 100000。

權(quán)值均為不超過1000的正整數(shù)。


前面也說了,這道題筆者花了相當(dāng)長的時間,但其實細(xì)究起來,最重要的就三個點:

1.建樹
(但這道題并不是簡單的單個頭結(jié)點,每個結(jié)點只有一個父結(jié)點的那種普通的樹,它實際是個無向圖!)

2.遞推式
(這個難度比較小),但是不太好解釋 ,講不清楚請原諒哈~~?( ^ ? ^ *) ,直接寫基本思路:

深度遍歷每一個結(jié)點,每個結(jié)點都進行一次判斷:
如果取這個結(jié)點,那么該結(jié)點的子結(jié)點就不取,如果不取該結(jié)點,那么它的子結(jié)點有兩種情況:可以取,也可以不取!

于是有狀態(tài)方程:

dp[x][0]表示x結(jié)點不選中時最大的權(quán)值,dp[x][1]表示x結(jié)點選中時最大的權(quán)值

狀態(tài)轉(zhuǎn)移方程:dp[x][1] = dp[x][1] + dp[u][0] (u為x的子結(jié)點)
       dp[x][0] = dp[x][0] + max{dp[u][0],dp[u][1]}(u為x的子結(jié)點)
      
(看不懂就多看幾遍,自己紙上畫一下,花點時間總是能懂的。)

3。樹(無向圖)的遍歷
(事實上,樹的遍歷還是比較容易的,只要注意多叉樹與二叉樹之間的轉(zhuǎn)換就很容易實現(xiàn),祥見上一篇博客的代碼(這幾個字是鏈接))

但是!無向圖的遍歷就復(fù)雜了好多,這也是這篇博客的重點!!!

因為網(wǎng)上能找到的的代碼基本都是千篇一律,但那段代碼筆者是真的看不懂~~

但功夫不負(fù)有心人,我終于找到了一篇好東西!!

鏈?zhǔn)角跋蛐莌ttps://blog.csdn.net/lala__lailai/article/details/79249809

以上為鏈接!

在這(兩)位大佬的幫助下!筆者終于搞懂了這段神奇的代碼!!

但是很顯然這種算法筆者很難學(xué)得會呀~~嗚嗚嗚…

哎,講得亂七八糟的,希望讀者大大們能看懂~~

看不懂就動筆一步一步跟著代碼走,相信你一定會豁(jing)然(wei)開(tian)朗(ren)的~~

以上!

</div><link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet"></div>

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯 算法训练(四)结点选择(树形动态规划)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。