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}
\]
浙公网安备 33010602011771号