bzoj3252 攻略(長鏈剖分 貪心)

2021-09-10 01:12:02 字數 876 閱讀 7978

傳送門

長鏈剖分好題。

題意:給一棵帶點權的樹,可以從根節點到任一葉節點走k

kk次,走過的點只能計算一次,問k

kk次走過的點點權值和最大值。

思路:考慮將整棵樹帶權長鏈剖分,這樣鏈與鏈之間是不會重複選擇的。

然後每條鏈都對應一種方案,我們貪心選擇前k

kk大即可。

**:

#include

#define ri register int

using

namespace std;

inline

intread()

typedef

long

long ll;

const

int n=

2e5+5;

int n,k,a[n]

,fa[n]

,hson[n]

,top[n]

,len[n]

;ll ans=

0,dep[n]

,mxdep[n]

;vector<

int>e[n]

;vectorsum;

void

dfs1

(int p)

}void

dfs2

(int p,

int tp,ll all)

for(ri i=

0,v;i.size()

;++i)if(

(v=e[p]

[i])

!=fa[p]

&&v!=hson[p]

)dfs2

(v,v,a[v]);

}int

main()

BZOJ 3252 攻略(長鏈剖分)

題目簡述 樹版 k取方格數 眾所周知,桂木桂馬是攻略之神,開啟攻略之神模式後,他可以同時攻略k部遊戲。今天他得到了一款新遊戲 xx半島 這款遊戲有n個場景 scene 某些場景可以通過不同的選擇支到達其他場景。所有場景和選擇支構成樹狀結構 開始遊戲時在根節點 共通線 葉子節點為結局。每個場景有乙個價...

BZOJ3252 攻略(長鏈剖分,貪心)

bzoj 給定一棵樹,每個點有點權,選定 k 個葉子,滿足根到 k 個葉子的所有路徑所覆蓋的點權和最大。乙個假裝是對的貪心 每次選擇最大的路徑,然後將路徑上所有點的權值清零。那麼我們可以用長鏈剖分來實現這個貪心。鏈長改為最大的路徑權值和,這樣子把每條重鏈的權值丟進乙個堆裡面取 k 次即可。正確性自己...

bzoj 3252 攻略 長鏈剖分 貪心

time limit 10 sec memory limit 128 mb 題目簡述 樹版 k取方格數 眾所周知,桂木桂馬是攻略之神,開啟攻略之神模式後,他可以同時攻略k部遊戲。今天他得到了一款新遊戲 xx半島 這款遊戲有n個場景 scene 某些場景可以通過不同的選擇支到達其他場景。所有場景和選擇...