類題です 類題その2です

この解説では操作 11 のことを「操作」、操作 22 のことを「移動」と呼びます。

便宜上マス 0,N+10,N+1 を白であると見做し、di=(d_i=(マス ii とマス i+1i+1 の色が異なれば 11、同じなら 0)0) と定義します。すると、各操作は dLid_{L_i}dRi+1d_{R_i+1} を01反転することに言い換えられます。また、マス ii からマス i+1i+1 に移動するためには di=0d_i=0 が必要だと分かります。

開始時点ではマス 11 で操作を行うことしかできません。よって 1<L11 \lt L_1 なら不可能であり、可能なら必ずマス 11 での操作が行われます。

Vil君のいるマスとそれ以前のマスは全て白であると仮定した場合のマス i (1<i)i\ (1 \lt i)での操作について考えます。操作区間がVil君のいるマスを含む(LiiRi)(L_i \le i \le R_i)場合、操作後にVil君のいるマスが黒になり移動ができなくなるため、この操作は無意味です。操作区間がVil君のいるマス以前である(Ri<i)(R_i \lt i)場合、この操作が後にVil君のいるマス以降への移動を可能にすることに寄与するとすれば、その過程で操作区間がVil君のいるマスを含む操作を行うことになるためこちらも無意味です。また、これにより仮定が常に維持されます。

開始時点では d0=dN+1=1d_0=d_{N+1}=1 でその他は 00 であるため、マス NN に到達するためには(マス 11 での操作を含む)意味のある操作をいくつか行なって d0,dN+1d_0,d_{N+1} を奇数回、その他を偶数回反転させればよいことが分かります。これは、頂点 1,2,,N+11,2,\dots,N+1 からなる空グラフに i=1i=1 または i<Lii \lt L_i であるような ii のみについて無向辺(Li,Ri+1)(L_i,R_i+1) を張った時に頂点 11 から頂点 N+1N+1 までのパスが存在するかどうかを見れば判定可能です。また、最小回数はこのときの頂点 11 から頂点 N+1N+1 までの距離に等しくなります。以上でこの問題を解くことができました。計算量は O(N)O(N) です。