arc216_a解题报告
我们称 \(i\) 位置 成立 为该位置满足 \(i-1,i+1\) 位置颜色相同,使得当前节点颜色可以变化。
我们发现,对于一个点 \(i\) 成立,那么必然能使 \(i-1,i+1\) 成立,颜色为左右两边的颜色,
没思路了?我们去寻找限制更强的地方。
容易发现\(1,n\)位置无法被修改,
那么\(2\)位置只有让 \(3\) 位置满足 \(1\) 位置颜色,当前位置才能够被修改。
那么如果 \(3\) 位置也无法满足颜色需求,那么 \(3\) 位置也需要更改,因为 \(2\) 位置的更改需要 \(3\) 位置的更改,所以我们可以把 \(2\) 位置看成固定的值,那么形式又变成位置 \(1,2\),递归下去即可。
可这是 \(O(n^2)\) 的,我们得优化它。
分析递归过程其实是区间翻转操作,那么 \(i-1,i+1\)的颜色关系无变化,还是不同颜色,我们可以直接从上一次的终点开始。
这个就是双指针。
可是我一点不想写数据结构,那么关于区间翻转,由于我们是扫描式的从左往右,差分即可,不过这样就有些细节。

浙公网安备 33010602011771号