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

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

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

Yet Another Hamiltonian Path Problem

問題に戻る

解説

A1=0A_1=0A1​=0 の場合、頂点 111 から出る辺は一つもない。したがって、ハミルトン路が存在するなら、頂点 111 は経路の最後の頂点でなければならない。

同様に、AN=1A_N=1AN​=1 の場合、頂点 NNN から出る辺は一つもない。したがって、この場合は頂点 NNN もハミルトン路の最後の頂点でなければならない。

よって、A1=0A_1=0A1​=0 かつ AN=1A_N=1AN​=1 のとき、異なる二頂点がどちらも最後の頂点でなければならないため、ハミルトン路は存在しない。

それ以外の場合は、常にハミルトン路を直接構成できる。

AN=0A_N=0AN​=0 とする。まず Ai=1A_i=1Ai​=1 である頂点を番号の昇順にすべて出力し、その後に Ai である頂点を番号の降順にすべて出力する。最初の部分では、現在の頂点の値が で次の頂点の番号がより大きいため、必要な辺が必ず存在する。二つ目の部分では、現在の頂点の値が で次の頂点の番号がより小さいため、必要な辺が必ず存在する。両方の部分が空でない場合、最初の部分の最後の頂点番号は より小さく、二つ目の部分の最初の頂点は である。したがって、二つの部分の間にも辺が存在する。

AN=1A_N=1AN​=1 の場合、不可能な場合ではないので A1=1A_1=1A1​=1 である。このとき、Ai= である頂点を番号の降順にすべて出力し、その後に である頂点を番号の昇順にすべて出力する。各部分の内部の辺は上と同じ理由で存在する。両方の部分が空でない場合、最初の部分の最後の頂点番号は より大きく、二つ目の部分の最初の頂点は であるため、二つの部分の間にも辺が存在する。

各頂点を定数回だけ調べるので、各テストケースの時間計算量は O(N)O(N)O(N)、全体では O(∑N)O(\sum N)O(∑N) である。追加の空間計算量は O(N)O(N)O(N) である。

Solution written by GPT5.6

=0A_i=0
Ai​=0
111
000
NNN
NNN
0A_i=0
Ai​=0
Ai=1A_i=1Ai​=1
111
111