今天還不錯,沒有吃到 penalty
就是第三題實作起來突然有點卡手浪費了不少時間
https://i.imgur.com/A1dJsLz.png
1. Count Pairs Of Similar Strings
n <= 100,直接暴力去比較每組 (i, j) 就可以了
2. Smallest Value After Replacing With Sum of Prime Factors
用普通的方式因式分解再加起來,不斷循環就好
因為一個循環過後 n' <= 2 * sqrt(n)
所以收斂速度很快,直接模擬一步一步算就好
3. Add Edges to Make Degrees of All Nodes Even
先找出所有奇數 degree 的節點
因為只能加兩條邊,如果超過 4 個奇數節點的話就直接不可能
因為 degree 總數是偶數(一條邊貢獻 2 degree)
所以奇數節點只可能是 0, 2, 4 三種
0 直接成功,4 的話一定是兩兩配對,總共有三種配對法,一一檢查就好
2 的話應該才是考點
如果這兩個人 u, v 之間可以加邊,那就直接成功
還有一種可能是存在第三點 m
(u, m), (m, v) 可以加邊,這樣也可以成功
4. Cycle Length Queries in a Tree
一個樹加一條邊 (u, v) 之後一定恰出現一個 cycle
cycle 的長度就是原本樹上 u, v 的距離加一
算距離的方法就是找到最近的共同祖先
因為深度 <= 30,直接算出各自從 root 的路徑再把共同祖先去掉就可以了