傳送門
題意:在乙個樹上,每個加點都有乙個值,求最大的子樹和。
思路:據說是樹形dp入門。
用dfs,跑一邊,回溯的時候求和,若和為負數,則減掉,下次不記錄這個節點。
#include #includeluogup1122#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;
}
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 時間複...