題目:p1352 沒有上司的舞會
演算法標籤:dp,搜尋,樹形結構,記憶化搜尋
從樹的頭往下求結果會有後效性,且有多個葉子節點,資料不易處理
則採用,葉子節點往頭部求結果
對於某一節點,有選擇和不選擇兩種情況
1、不選擇的話 記 dp[ ][ 0 ]
for
(int i =
0; i < a[x]
.tail.
size()
; i++
)
2、選擇的話 記dp[ ][ 1 ]
for
(int i =
0; i < a[x]
.tail.
size()
; i++
)
#include
using
namespace std;
const
int maxn =
6e3+5;
struct node a[maxn]
;int n, head;
int f[maxn][3
];bool vis[maxn]
;voiddp(
int x)
}int
main()
for(
int i =
1; i < n; i++
)// 找出根
for(
int i =
1; i <= n; i++)}
dp(head)
; cout <<
max(f[head][0
], f[head][1
])<< endl;
return0;
} ```
P1352 沒有上司的舞會
原題鏈結 樹形dp入門 dp方程搞錯了居然還過了90 利用dfs遞迴求解 每個點分為選和不選兩種情況 假設選為1不選為0 dp x 0 max dp num i 1 dp num i 0 這裡一開始寫成了dp num i 1 但它的兒子的兩種狀態實際上都是可選的 dp x 1 dp num i 0 ...
P1352 沒有上司的舞會
題目描述 某大學有n個職員,編號為1 n。他們之間有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來乙個職員都會增加一定的快樂指數ri,但是呢,如果某個職員的上司來參加舞會了,那麼這個職員就無論如何也不肯來參加舞會了。所以,請你程式設計...
P1352 沒有上司的舞會
某大學有n個職員,編號為1 n。他們之間有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來乙個職員都會增加一定的快樂指數ri,但是呢,如果某個職員的上司來參加舞會了,那麼這個職員就無論如何也不肯來參加舞會了。所以,請你程式設計計算,邀請...