[心得] CF771C sum over ceil(path length / k) on a tree

看板Prob_Solve (計算數學 Problem Solving)作者 (拍玄)時間5年前 (2019/03/31 15:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
AS TITLE 題幹非常簡單 Given a bidirectional tree and k 這題要算的就是 sum over ceil(length between any pair of vertice / k) 作法: DP,每條 path 的貢獻在他的 LCA 算好 我們可以把一條 path 拆成可以被 k 整除的部分跟餘數 像這樣,假設 k = 5 -----, -----, -----, -----, -----, -----, -- 接著維護餘數為 t 的 path 有幾條,例子中 t = 2 以及 sum : 已經成為完整的長度為 k 的部分有幾個,例子中是 sum = 6 接著就像算 sum over length of all pair of path 實作細節: k 不會很大,所以我寫 k^2 n 複雜度也沒慢多少,而且比較好寫 這題我用 struct 把操作包起來,寫起來非常舒服 寫了一個 shift method 實際上是 +1 的意思 Solution: https://codeforces.com/contest/771/submission/52069290 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.216.110 ※ 文章網址: https://www.ptt.cc/bbs/Prob_Solve/M.1554016795.A.61A.html
文章代碼(AID): #1Se6eROQ (Prob_Solve)
文章代碼(AID): #1Se6eROQ (Prob_Solve)