DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

Lを取れ

問題に戻る

解説

L 字形は、ある列の両方のマスと、その隣の列の 111 マスを取る。したがって必ず空の列ができ、左右は互いに影響しない独立したゲームになる。

空の列で区切った各区間では、端の列だけが 111 マスになり得て、内部の列には常に 222 マスが残る。この性質はどの手の後にも保たれる。

区間の残りマス数を kkk とする。どの手も、大きさが aaa と k−3−ak-3-ak−3−a の二つの区間を残す。逆に、0≤a≤k−30\le a\le k-30≤a≤k−3 のすべての分割が可能である。マスを左の列から順に並べると、連続する 333 マスは必ず一つの列の 222 マスと隣の列の 111 マスになる。先頭の aaa マスの直後の 333 マスを取ればよい。他の向きで取っても、新しい大きさの組は生じない。

よってグランディ数はマス数だけで決まる。これを G(k)G(k)G(k) とすると、

G(0)=G(1)=G(2)=0G(0)=G(1)=G(2)=0G(0)=G(1)=G(2)=0

であり、k≥3k\ge3k≥3 について

G(k)=mex⁡{G(a)⊕G(k−3−a)∣0≤a≤k−3}G(k)=\operatorname{mex}\{G(a)\oplus G(k-3-a)\mid 0\le a\le k-3\}G(k)=mex{G(a)⊕G(k−3−a)∣

となる。mex⁡\operatorname{mex}mex は集合に含まれない最小の非負整数、⊕\oplus⊕ はビット XOR である。

最初は 2N2N2N マスの区間が一つある。G(2N)≠0G(2N)\ne0G(2N)=0 なら YES、そうでなければ NO を出力する。

入力中の NNN の最大値を MMM とする。G(2M)G(2M)G(2M) までの前計算は O(M2)O(M^2)O(M2) 時間、 空間で行える。その後は各ケースを 時間で処理でき、全体の時間計算量は 、入力を含む空間計算量は である。

サブタスク 1 は N≤10N\le10N≤10 である。2N2N2N マスの状態をビットマスクで表し、合法な L をすべて試すメモ化探索を行う。同じ NNN の答えを再利用すれば、K=max⁡N≤10K=\max N\le10K=maxN≤ に対し時間は 、空間は 以下となる。サブタスク 2 では上記のグランディ数を使う。

Solution written by GPT

0
≤
a≤
k−
3}
O(M)O(M)
O(M)
O(1)O(1)O(1)
O(M2+T)O(M^2+T)O(M2+T)
O(M+T)O(M+T)O(M+T)
10
O(K4K+T)O(K4^K+T)O(K4K+T)
O(4K+T)O(4^K+T)O(4K+T)