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