懶得每道題都開一個隨筆,所以就放一個裡面。
這些大概是 2023 的,先合併過來。
CF1806E Tree Master
我們分析題目中用粗體標註的一個條件:每次給出的 \(x_{i}\) 和 \(y_{i}\),它們深度相同。
這就表明一個點的權值只會和與它處於同一深度的任意一個點相乘,這就減少了相乘點對的組數,也增加了它們出現的次數,會導致我們多次計算同一個 \(f(x,y)\) 的值,增大時間複雜度。
對於這個問題,我們可以嘗試用類似記憶化搜尋的方法來解決,但是為了不超過空間限制,也不能全部記錄,即對於每一組 \(x,y\),我們可以設一個值 \(B\),即在不記錄答案的情況下,最多計算 \(B\) 次。對於餘下的計算,每次的值都會被儲存在一個 map 中,這樣時間複雜度可以最佳化至近似 \(O(Bq)\)。