赛时想到的是,最优路径不可能经过−1-1−1,于是考虑设 dpudp_udpu 作为一个 vector 表示以 uuu 为根的子树中从 uuu 开始的最优路径上 aj=1a_j = 1aj=1 的所有 jjj,那么转移的时候只需要从前往后对比两个 vector 的 jjj 的 depdepdep 的大小进行转移。
vector
然后这个做法 mle 了,于是考虑了一种优化,设 dpudp_udpu 表示最优路径上第一个 aj=1a_j=1aj=1 的 jjj,然后转移的时候同样和对比 vector 一样,只不过空间复杂度得到优化,但是这样做的时间复杂度是正确的吗?
代码