做题记录 26.4.13
\(\textcolor{purple}\odot\) AT_agc032_c [AGC032C] Three Circuits
显然必须有欧拉回路,即存在奇度点则不合法
由于 \(m\ge 1\) 而无需考虑孤点的情况
若存在度数 \(>4\) 的点则显然合法
否则只有 \(2\) 度点和 \(4\) 度点
若所有点度数都是 \(2\) 则图为一个简单环,显然不合法
若存在恰好一个 \(4\) 度点则图为两个环交于一点,显然不合法
若存在 \(\ge 3\) 个 \(4\) 度点显然合法
存在 \(2\) 个四度点分为两种情况,设两个四度点为 \(u,v\),要么存在四条链 \(u\to v\),要么存在两条 \(u\to v\) 和一条 \(u\to u\) 一条 \(v\to v\)
容易通过 \(\text{dfs}\) 判断
时间复杂度 \(O(n+m)\)
\(\textcolor{purple]\odot\) AT_agc034_e [AGC034E] Complete Compress
枚举终点,令其为根
令 \(g_u=\sum_{v\in \text{subtree}(u)}[s_v] \text{dis}(u,v)\)
显然最优情况下每次操作必然让 \(g_u\) 减去 \(2\),因此若合法则容易计算步数,考虑如何判断是否合法
令 \(f_u\) 表示若干次操作后子树内 \(g\) 的最小值
令 \(ct_u\) 表示子树内 \(s=1\) 的数量,则
\[f_u=\begin{cases}
g_u\bmod 2 & \forall v\in \text{son}(u), f_v+g_v+2ct_v<g_u\\
g_u-\max_{v\in\text{son}(u)}(f_v+g_v+2ct_v) & \text{otherwise}
\end{cases}
\]
时间复杂度 \(O(n^2)\),容易换根优化到 \(O(n)\)

浙公网安备 33010602011771号