思路 一看暴力 O ( n 2 ) \mathcal{O(n^2)} O(n2),再看数据范围1e6。 于是考虑可否 O ( 1 ) \mathcal{O}(1) O(1) 计算每一个位置的贡献。 分两种情况讨论,如果这一位是 0 0 0, 那么之前的每一位到这里的答案都是 1 1 1。 如果这一位是 1 1 1 ,那就意味着之前的贡献到这里都变成了 0 0 0;但之前贡献为零的点现在都变成了 1 1 1。 代码简单得要死,但做这种题就需要灵光乍现,哪位大佬教教我怎么快速做这种题啊!