poj3585樹最大流 換根法

2022-05-12 13:15:08 字數 625 閱讀 7215

題目:

二次掃瞄與換根法,一次dfs求出以某個節點為根的相關值,再dfs遍歷一遍樹,根據之前的值換根取最大值為答案。

**如下:

#include#include

#include

using

namespace

std;

int n,head[200005],ct,d[200005],f[200005],deg[200005

],ans,t;

bool vis[200005

];struct

nedge[

400005

];void add(int x,int y,int

z)void dp(intx)}

void dfs(int pre,int w,intx)}

intmain()

dp(1);

f[1]=d[1

]; memset(vis,

0,sizeof

vis);

dfs(

0,0,1

); printf(

"%d\n

",ans);

}return0;

}

POJ3585 換根模板

題意 機翻?好,假裝各位都已經看懂了題。首先是暴力,列舉每乙個點作為根,然後每次做乙個樹上dp,複雜度o n2 掉 然後,我們考慮怎樣優化。假設我們已經求出了 的答案,對與每乙個它的子節點,我們注意到其實當我們換其子節點 為根時,的子樹貢獻是已知的。只需考慮另外一側的貢獻之間,同時又注意到,除 以外...

POJ3585(二次掃瞄與換根法)

題意 給定一顆無向帶權樹,要你找出乙個節點作為根,向葉子節點流水,使流水量最大。二次掃瞄與換根法的入門題。設d表示以1為根的情況下,每個節點向他的子樹流水量的最大值。那麼可以得出轉移方程 d x y son of x left min d y edge x,y y 1 edge x,y y 1 en...

poj3585 樹形dp二次換根

這道題如果用暴力的方法是列舉根節點,對每個根節點dfs下去,但是這樣肯定會t,需要用樹形dp優化一下。輔助陣列 d maxn f manx d i 代表以任意某個節點為根,i可以向其子節點流的最大流量。f i 代表以i為根節點時,最大流量。當我們以1為根節點時,明顯f 1 d 1 處理d i 陣列 ...