專心OI 找祖先

2022-02-23 12:27:17 字數 448 閱讀 8893

題解:假設我們找到點u

1.這些點對不跨越u,即其中有乙個點一定是u

\[ans1 = 2 \times size\left[ u \right] - 1\]

2.這些點不跨越u

u的所有子樹的大小相乘即是答案。w為子樹個數。

\[ans2 = \sum\limits_^w ^w \right]} } \times size\left[ \right] - \sum\nolimits_^w \right]} \]

我們發現並不需要列舉兩個兒子,另乙個可由父親的大小推出

簡化上式可得

\[ans2 = \right)^2} - \sum\limits_^w \right]_{}^2} \]

相加得解

\[ans = size - \sum\limits_^w \right]_{}^2} \]

然後隨便做。。。

洛谷P5002 專心OI 找祖先

題目描述 這個遊戲會給出你一棵樹,這棵樹有nn個節點,根結點是rr,系統會選中mm個點p 1,p 2 p m 要imakf回答有多少組點對 u i,v i 的最近公共祖先是p i imakf是個小蒟蒻,他就算學了lca也做不出,於是只好求助您了。imakf畢竟學過一點oi,所以他允許您把答案模 10...

P5004 專心OI 跳房子

傳送門 solution 考慮線性dp。f i 表示前 i 個格仔 僅限於跳到前 i 個格仔 有多少種跳法。則 f i f 1 f 2 f i m 1 不會打xigema,湊合著看吧 然而 n 很大,無法用 operatorname n 的時間來做。發現 m 很小,立刻想到矩陣乘法優化線性dp。維護...

P5004 專心OI 跳房子 解題報告

把 n 個無色格仔排成一行,選若干個格仔染成黑色,要求每個黑色格仔之間至少間隔 m 個格仔,求方案數 根據題面,這一題似乎可以用遞推 設第 i 個格仔的編號為 i 有 i 個格仔時的方案數為 f i 顯然,當 i le m 1 時,可以所有格仔不染色 方案數為 1 種,或者最多有乙個格仔染色 方案數...