分析:如果我們知道了有哪些點需要訪問,最短距離是多少呢
建出虛樹,所有邊權和為\(sum\),直徑為\(l\),那麼答案為\(2sum-l\)
期望=總貢獻/方案
方案肯定為\(\binom\),我們開始算總貢獻
先求\(sum\),考慮每條邊會在多少種情況下做貢獻,顯然是其兩端都有關鍵點的情況下
設其在樹上所接的兒子為\(u\)
這裡的方案為\(\binom-\binom-\binom\)
應該不用解釋什麼
開始算直徑
(我記得直徑期望不是個很恐怖的東西嗎(錯亂)
由於這裡\(m\)只有500,我們可以暴力處理出每對點的距離
我們暴力列舉,強行讓某兩點做直徑端點,遇到同樣大小的取編號最小,看剩下哪些點是可以選擇的,假設有\(p\)個
那麼這條直徑做貢獻的方案數為\(\binom\)
總複雜度\(o(nlogn+m^2logn+m^3)\),可以通過
\(o(nlogn+m^2logn)\)這裡看自己的lca求法吧,我主要為了省事(
聯考20200719 T1 合併奶牛
分析 首先考慮 dp 設 f 表示 a 用了前 i 個,b 用了前 j 個的方案數 先給出式子 f f f sum b f cat 求和下面的條件是 a 和 b 的某一段相同,cat 是卡特蘭數 如果沒有同樣的顏色,不用後面的求和,算出來的答案就是正確的,但是有了同樣的顏色,前面的會算重 後面的求和...
聯考20200801 T1 林海的密碼
分析 很離譜的構造題 第乙個點直接輸出c條重邊就可以了 第二個點增加 k 個點,每個點向終點連2條邊 其實第二個點給了我們一些提示,讓我們向二進位制之類的方向思考問題 考慮構造乙個像這樣的環 我們算一下方案,其實可以列舉斷掉那條邊,兩端各自沿著紅藍邊走向根 答案是 2 0 2 1 2 1 2 2 2...
聯考20200525 T1 資料結構
分析 這道題可以看做單點修改區間查詢歷史最小值的資料結構題 區間修改單點查詢歷史版本可以使用二維資料結構維護 由於卡空間,這裡只能選擇kd樹 在kd樹上區間修改,歷史最值只需要統計單點到根節點的路徑上記錄的歷史最值就行了 關鍵是這道題如何轉化?我們把詢問離線,每乙個查詢 l,r 看做座標軸上的單點 ...