當前位置:
首頁 >
newcode Gene Tree 点分治
發(fā)布時間:2023/12/4
49
豆豆
生活随笔
收集整理的這篇文章主要介紹了
newcode Gene Tree 点分治
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
傳送門
文章目錄
- 題意:
- 思路:
題意:
求一棵樹的每對葉子節(jié)點之間距離平方的和。
思路:
這個題貌似可以容斥,但是我不會,所以我寫了個淀粉質(zhì)。
要知道,淀粉質(zhì)的思想就是將子樹內(nèi)部的遞歸處理,當前這層處理不同子樹之間的距離即可,考慮化簡式子分別求貢獻。
假設(shè)(ai+aj)2(a_i+a_j)^2(ai?+aj?)2為兩點間距離平方和,ai,aja_i,a_jai?,aj?為葉子到當前找的偽重心的距離,把式子化簡出來就是ai2+aj2+2?ai?aja_i^2+a_j^2+2*a_i*a_jai2?+aj2?+2?ai??aj?,考慮每一塊的貢獻。
我們設(shè)當前遍歷的子樹的葉子距離為aia_iai?,之前遍歷過的子樹的葉子距離為aja_jaj?,個數(shù)為cntcntcnt個,平方和為sum1sum1sum1,和為sum2sum2sum2。算這個子樹和之前遍歷過的子樹信息的時候,ai2a_i^2ai2?的貢獻是cnt?ai2cnt*a_i^2cnt?ai2?,bi2b_i^2bi2?就是sum1sum1sum1,2?ai?aj2*a_i*a_j2?ai??aj?的貢獻為2?ai?sum22*a_i*sum22?ai??sum2,這樣我們就可以分開統(tǒng)計貢獻,淀粉質(zhì)板子套一下就好啦。
總結(jié)
以上是生活随笔為你收集整理的newcode Gene Tree 点分治的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10岁儿童减肥的最好方法是什么
- 下一篇: newcode Islands 思维