LuoGu P1122 最大子樹和 樹形dp入門

2022-05-01 15:09:20 字數 643 閱讀 4799

傳送門

題意:在乙個樹上,每個加點都有乙個值,求最大的子樹和。

思路:據說是樹形dp入門。

用dfs,跑一邊,回溯的時候求和,若和為負數,則減掉,下次不記錄這個節點。

#include #include 

#include

#include

#include

using

namespace

std;

const

int maxn = 1e5+9

;int

a[maxn],dp[maxn],cut[maxn];

vector

mp[maxn];

int n,ans = 0

;void dfs(int u,int

p)

for(int i=0; i)

if(dp[u] < 0) cut[u] = 1

; ans =max ( ans,dp[u]);

}int

main()

dfs(

1,-1

); printf(

"%d\n

", ans);

return0;

}

luogup1122

P1122 最大子樹和

小明對數學飽有興趣,並且是個勤奮好學的學生,總是在課後留在教室向老師請教一些問題。一天他早晨騎車去上課,路上見到乙個老伯正在修剪花花草草,頓時想到了乙個有關修剪花卉的問題。於是當日課後,小明就向老師提出了這個問題 一株奇怪的花卉,上面共連有nn朵花,共有n 1n 1條枝幹將花兒連在一起,並且未修剪時...

P1122 最大子樹和 題解

同步 原題鏈結 簡要題意 給定一棵 n nn 個節點的樹,有點權,求其中最大的連通塊之和。資料範圍 n 1.6 1 04 n leq 1.6 times 10 4 n 1.6 104.很顯然,考慮用樹形 dp text dp 解決此題。f uf u fu 表示以 u uu 為根的子樹中包含 u uu...

P1122 最大子樹和 題解

csdn同步 原題鏈結 簡要題意 給定一棵 n 個節點的樹,有點權,求其中最大的連通塊之和。資料範圍 n leq 1.6 times 10 4 很顯然,考慮用樹形 text 解決此題。f u 表示以 u 為根的子樹中包含 u 節點的答案。則易得 f u a u max u max f v 0 時間複...