【省選模擬】20/06/15

AA

  • 線段樹維護同色集合最遠點,再用一棵線段樹維護顏色區間集合最遠點,複雜度 O(nlogn)O(n\log n)CodeCode

BB

  • 考慮一個點的 SGSG 的值是其子樹深度最大值,我們需要動態維護深度最大值
    將直徑中點作爲根,將一個點定爲根相當於將其到根的路徑上的點的值改爲到直徑的某個端點的距離
    相當於一個點有兩個權值,需要區間切換爲另一種,用線段樹維護即可,CodeCode

CC

  • 神仙 DPDP
  • 注意到若要將 ii 運走,ii 之前的一定全部運走,考慮設計狀態 dpi,jdp_{i,j} 表示到 ii,過了 jj 小時,花費的最小代價,同時注意到處理 ii 的時候,前 i1i-1 個點可能的權值只可能是 ai+bika_i+b_i*kbikb_i*k
    記錄 dpi,j,zdp_{i,j,z} 表示上述兩種狀態,同時發現需要設計 gi,j,zg_{i,j,z} 表示在 j:31j:31 分時,前 i1i-1 個點均爲 00 的最小花費,考慮轉移
    噹噹前點沒有爆時,可以直接從 fi1,j,zf_{i-1,j,z} 轉移,同時 gi,j,z=Sai1z+Sbi1jkg_{i,j,z}=\lceil\frac{Sa_{i-1}*z+Sb_{i-1}*j}{k}\rceil
    枚舉 ii 之前最後一次被經過的時間 rr
    首先需要花費 gi,r,zg_{i,r,z} 的費用將其清零
    然後我們可以通過若干次操作將 ii 減小使得它可以渡過剩餘的 jrj-r 小時,次數的下界是
    Sai1z+Sbi1rgi,r,zk+(jr)bik\lceil\frac{Sa_{i-1}*z+Sb_{i-1}*r-g_{i,r,z}*k+(j-r)*b_i}{k}\rceil
    接着需要花費 dpi1,jr,0dp_{i-1,j-r,0} 次使前面的點渡過 jj 個小時
    同時 gi,j,z=gi,r,z+Sai1z+Sbi1rgi,r,zk+(jr)bik+Sbi1(jr)kg_{i,j,z}=g_{i,r,z}+\lceil\frac{Sa_{i-1}*z+Sb_{i-1}*r-g_{i,r,z}*k+(j-r)*b_i}{k}\rceil+\lceil \frac{Sb_{i-1}*(j-r)}{k} \rceilCodeCode
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章