傳送門
長鏈剖分好題。
題意:給一棵帶點權的樹,可以從根節點到任一葉節點走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 某些場景可以通過不同的選擇支到達其他場景。所有場景和選擇...