ABC341E 解法 良い文字列である必要十分条件が, 悪い箇所が一つもないこと. つまり,悪い箇所の存在を高速に判定できれば良い. 変化した部分が少ないので,そこだけ更新. 答えるクエリでは,0,1が交互に並んでいるか (\in Bool) を判定する. 区間を反転するクエリでは,区間の内部は交互に並んでいるか (\in Bool) は変わらない. Bool に入っているか変化するのは,区間の両端だけ. i番目と i+1番目が同じか \(\in Bool\) を set に入れておく. \([l,r)\) に対して,set に入っているかを判定する. 実装 0-indexed, [l,r) …