1. 程式人生 > 其它 >2021清北學堂國慶刷題班Day5

2021清北學堂國慶刷題班Day5

比賽總結

T1

https://noip.ac/rs/show_problem/3693

$ n \leq 10^3 $ , 直接暴力逆元求解即可。

拓展:

給定 $ f_0 , f_1 $ , $ f_i $ 滿足 $ f_i = f_{i - 1} + f_{i - 2} $ , $ f_0, f_1 \leq 10^6 $ , 求 $ g(f_0 | f_1 | ... | f_n) $ ?

發現 $ n $ 只需要列舉到 $ 60 $ 即可, 由於 $ 10^6 < 2^{20} $ 以及按位或的性質。

T2

https://noip.ac/rs/show_problem/3694

把 $ m $ 卡在某個 $ \frac {i \times (i - 1)}{2} $ 和 $ \frac {(i - 1) \times (i - 2)}{2} $ 之間, 令 $ r = m - \frac {i \times (i - 1)}{2} $ , 再最前面添 $ r $ 個 $ 1 $ , 接上 $ i - r $ 個 $ 2 $ , 最後加上一個 $ 98 $ , 剩餘位置補全 $ 7861 $ 這樣無關的數即可。

T3

https://noip.ac/rs/show_problem/3695

一開始樹為空,將所有點的點權從大到小加進去,加入一個點後會形成新的連通塊, 則樹上經過這個最新加入點路徑的權值就是該點的權值(路徑長度從 $ 1 $ 到 該連通塊的直徑長度 都可以)。

令 $ p_1, p_2 , p_3, p_4 $ 為到新加的點最遠的點, 使用 $ LCA $ 進行一些操作即可求解直徑。

T4

https://noip.ac/rs/show_problem/3696

關於 $ a = b = 0 $ 的部分:

則 $ g(x) = cx + d $, 而 $ d -> d \times 2 ^ n $ , 考慮 $ cx $ , 那麼想到每條邊在 $ 2^{n - 2} $ 個子圖中, 則 $ m $ 邊會貢獻 $ c \times m \times 2 ^ {n - 2} $ 。

關於 $ a = 0 $ 的部分:

其餘同上,考慮 $ bx ^ 2 $ 的部分,$ x^2 $ 表示選兩條邊, 在整個圖中選兩條邊,統計這兩條邊能被多少子圖包含。

1.兩邊是同一條,則有 $ m $ 種情況, 有 $ 2 ^ {n - 2} $ 個子圖包含這兩條邊。

2.兩條邊有公共點:列舉公共點, 則有 $ degree[v] \times degree[v - 1] $ 種, 有 $ 2 ^ {n - 3} $ 個子圖包含。

3.兩條邊沒有公共點:方案數為 $ m ^ 2 - 1 - 2 $, 有 $ 2 ^ {n - 4} $ 個子圖包含。

$ 100 pts $ :

$ x ^ 3 $ 項即下相當於選 $ 3 $ 條邊, 看這 $ 3 $ 條邊被多少子圖包含。