1. 程式人生 > >集訓 0620

集訓 0620

真的 註意 線段 歐拉路 bsp 調試 不能 證明 超過

T1:

要求你在一顆樹上做背包,並且遍歷這棵樹的每個節點,內存要求不能超過20M。

嗯...很坑,在寫了分塊之後,我發現被卡了,O2下1.2秒正好,非O2下3秒左右,時限1.7秒,嗶了狗了。

能得60也是托了數據過水的洪福。

正解:這題本質是要求你確定一條樹上的歐拉路徑,並且使每次同時維護的未遍歷的鏈接口最少。

初步觀察發現,如果一條長路一條短路,先走短路比先走長路優,因為長路上並接很多鏈接口的可能性很大。

然後可以判斷初步策略是每次走siz(dep也可以?)域最小的子樹,經過一番調試,發現真的如此。然後就寫出來了。

證明的話,應該可以像證明樹鏈剖分那樣證明.....吧。

T2:

線段樹題目,批量升級的套路,我有個地方打殘了,結果只混了暴力分,稍改兩個地方就是正解的說....

沒什麽可說的,只需要註意線段樹的標記維護即可。

T3:

題答。

簡單暴力生成樹隨便跑了下貪心就過了94,唉...

不得不說數據過水了。

集訓 0620