DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

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