CF525D
注意到只有:
*. .* .. ..
.. .. *. .*
需要操作,直接 DFS 搜即可,但要搜的是八连通块,因为修改一个点可能会影响八个 2x2 的正方形。
而你用 DFS 会爆栈,加 inline 或者改用 BFS 即可。
CF1779E
注意到这其实是竞赛图,有如下性质:
-
竞赛图缩点之后是一条链。
-
一个点是预备冠军当且仅当从他出发能到所有点。
-
多个预备冠军在同一强连通分量里
故预备冠军在给反图缩点后的链的第一个点里。
可知把点按入度排序,且前 \(i\) 个点的入度和为 \(\frac{1}{2} \times i\times (i-1)\),则前 \(i\) 个点在第一个强联通分量里。
CF911F
考虑树上距离一个点最远的点肯定是直径的两个端点。
最优操作肯定不断删叶子,因为这样不会影响其他点,直到只剩下直径,直接删即可。
CF1981D
发现当 a 都取质数时,乘积相等当且仅当 \(a_i=a_j,a_{i+1}=a_{j+1}\)。
把 \((a_i,a_{i+1})\) 看成一条边,则要找一个点数最小且有一条欧拉路径的完全图。
若完全图点数为 \(x\),\(x\) 为奇数时,每个点度数为偶数,答案为 \(x(x+1)/2\)
同理为偶数时答案为 \(x^2/2+1\),暴力枚举确定答案再建图跑欧拉路径即可。
可以发现 \(x\) 很小,取第 \(x\) 个质数满足 \(a_i \le 3e5\)。