今天还不错,没有吃到 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 的路径再把共同祖先去掉就可以了