CF1442E题解

显然对于连在一起的同种颜色可以一起操作,等价于缩成一个点。

考虑缩完点的树,首先不考虑灰色点,那么这棵树一定黑白相间,那么如果我们固定一个点为根,这棵树就被分层,每一层的颜色一样,可以从最后一层往前删,次数为最大深度+1。

我们知道一棵无根树的最大深度的最小值为 \(\lceil \frac{d}{2}\rceil\),因此只用求树的直径,这时我们也发现没必要缩点,可以等价于同色边边权为 \(0\),异色边边权为 \(1\),再来求树的直径。

考虑灰色点,相当于将其染成黑/白色后再求树的直径,可以树形 \(dp\)

\(f[u][0/1]\) 表示把 \(u\) 染成黑/白后以 \(u\) 为端点的最长链, \(g[u][0/1]\) 表示把 \(u\) 染成黑/白后过 \(u\) 的最长路径,则有转移:

\[\begin{aligned} \\& f[u][j]=max(f[u][j],min(f[v][k]+(j!=k)))\\& g[u][j]=max(g[u][j],min(f[u][j]+f[v][k]+(j!=k))) \end{aligned} \]

posted on 2022-11-06 17:00  cool_tyl  阅读(12)  评论(0)    收藏  举报