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

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

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

You're the Culprit!

問題に戻る

解説

각 사람 iii에 대해 참말쟁이이면 Ti=1T_i=1Ti​=1, 거짓말쟁이이면 Ti=0T_i=0Ti​=0, 범인이면 Ci=1C_i=1Ci​=1, 범인이 아니면 Ci=0C_i=0Ci​=0으로 정의한다. T1=1T_1=1T1​=1이다.

각 진술은 두 변수 사이의 XOR 제약 하나로 바꿀 수 있다.

  • t=1t=1t=1: Ta⊕Cb=1T_a\oplus C_b=1Ta​⊕Cb​=.

변수 2N2N2N개를 정점으로 하는 그래프에 각 제약을 간선으로 추가한다. 간선의 XOR 값을 관리하는 가중치 있는 Disjoint Set Union을 사용하면, 제약이 모순되는지 판정할 수 있다. 모순이 하나라도 있으면 가능한 상태가 없으므로 -1을 출력한다.

모순이 없다면 각 연결 요소의 변수값을 전체적으로 뒤집어도 제약은 유지된다. 단, T1T_1T1​이 있는 연결 요소는 T1=1T_1=1T1​=1로 고정된다. 따라서 CiC_i가 과 같은 연결 요소에 있고 인 경우에만 번 사람이 모든 가능한 상태에서 범인이다. 번호 순서대로 이를 확인한다.

시간 복잡도는 O((N+M)α(N))O((N+M)\alpha(N))O((N+M)α(N)), 공간 복잡도는 O(N)O(N)O(N)이다.

Solution written by GPT6

1
  • t=2t=2t=2: Ta⊕Cb=0T_a\oplus C_b=0Ta​⊕Cb​=0.
  • t=3t=3t=3: Ta⊕Tb=1T_a\oplus T_b=1Ta​⊕Tb​=1.
  • t=4t=4t=4: Ta⊕Tb=0T_a\oplus T_b=0Ta​⊕Tb​=0.
  • C
    i​
    T1T_1T1​
    Ci⊕T1=0C_i\oplus T_1=0Ci​⊕T1​=0
    iii