Loading

CF1969E Unique Array

从整体的角度想你就祭了,得从前缀的角度思考。

思考让一个前缀合法的最小操作次数,有一个很显然的结论是,我们每次将一个元素修改为序列中没有出现过的元素一定不劣。

假设我现在加入一个 \(a_i\),那么出现不合法的情况只能是 \([j, i]\) 这个子区间不合法,令 \(j\) 为最大值,那么此时我们一定是将 \(a_i\) 修改,因为这样可以让每个左端点在 \([1, i]\) 中的往后面拓展都是合法的(优于在 \([1, i - 1]\) 中连边)。这也是贪心的思想,只有到了不得不改的时候我才会选择改,改了之后要使以后尽量不要改。

posted @ 2025-11-13 10:09  Alexande  阅读(7)  评论(0)    收藏  举报