额,就是一个随笔而已,仿照 \(\color{Red}{Cotsheep}\) 那样,随便写点,权当水吧。
神妙的构造,报废的大脑。
因为只用最后一位决定字典序,其他完全可以全用 a
填充。
显然答案具有单调性,那就直接上个二分。
可以把 check 的过程看成是 \(k\) 进制的运算,开个栈模拟算数进位即可。
\(n \le 50\),那什么爆枚都能干上去。
首先如何检查两棵树是否一致。
考虑枚举根的情况,在两棵树的根都已经确定的情况下,只要所有点的父节点都一致,说明两棵树一致,时间复杂度 \(O(n)\)。
那就直接枚举所有根的情况,然后分情况讨论:
- 如果根不被操作,就直接找出所有需要改变的节点,连边跑一个拓扑,如果有环说明不可行,否则更新答案。
- 如果根被操作,就再次枚举所有可能作为根的新父节点的节点,然后按上述一样操作更新答案即可。
单组时间复杂度:\(O(n^3)\)。
要命的是把 \(j\) 写成 \(i\),但是样例过了,调了半天。
上午之后不想写题,就疯狂改装我缺省源里的 modint
模块。
加上了任意模,各种运算符重载。
反正就是改到了看不出是从 \(\color{Black}{j}\color{Red}{iangly}\) 那贺来的程度了。