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

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

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

The Sum-XOR Dialogue

問題に戻る

解説

가능한 모든 정수 쌍을 그래프로 나타내자.

왼쪽에는 가능한 합 sss마다 정점 SsS_sSs​를 만든다. 오른쪽에는 가능한 XOR 값 yyy마다 정점 YyY_yYy​를 만든다. 가능한 쌍 (a,b)(a,b)(a,b)마다 Sa+bS_{a+b}Sa+b​와 YaxorbY_{a\mathbin{\mathrm{xor}}b}Yaxorb​를 잇는 간선을 하나 만든다.

어떤 날이 시작될 때 남아 있는 간선들은 이전 날까지의 모든 선언과 모순되지 않는 쌍들이다. 다다스가 관찰한 합에 대응하는 정점의 차수가 111이면 다다스는 두 수를 유일하게 알 수 있다. 모그도 같은 방식으로 XOR 정점의 차수가 111일 때 두 수를 알 수 있다.

두 사람은 동시에 말하므로, 한 날에는 시작 시점의 차수가 111인 정점에 닿은 모든 간선을 동시에 제거해야 한다. 따라서 정답은 실제 간선이 제거되는 라운드 번호이다. 끝까지 제거되지 않고 그래프의 222-core에 남으면 정답은 −1-1−1이다.

X≥10X\ge 10X≥10인 경우를 분석한다. PPP를 XXX 이하의 가장 큰 222의 거듭제곱이라 하자.

합 정점의 초기 차수가 111인 경우는 다음 네 개뿐이다.

  • 합이 333인 (1,2)(1,2)(1,2).
  • 합이 444인 (1,3)(1,3)(1,3).
  • 합이 2X−22X-22X인 .

초기 XOR 정점의 차수가 111인 경우는 다음과 같이 분류된다.

  • X=PX=PX=P이면 (i,P)(i,P)(i,P)가 모든 1≤i<P1\le i<P1≤i<P에 대해 유일하다.
  • X=P+이면 와 만 유일하다.

이를 보이기 위해 XOR 값 yyy를 생각하자. y<Py<Py<P이면 최상위 비트가 바뀌지 않는다. P≥8P\ge 8P≥8인 범위에서는 같은 XOR 값을 만드는 쌍을 낮은 구간에서 적어도 두 개 만들 수 있다.

y≥Py\ge Py≥P이면 y=P+zy=P+zy=P+z로 쓸 수 있다. 높은 쪽 수를 P+tP+tP+t라 하면 낮은 쪽 수는 t이다. 여기서 이다. 일 때만 낮은 쪽 수가 이 되어 사용할 수 없다.

  • X−P=0X-P=0X−P=0이면 가능한 ttt가 하나뿐이므로 (z,P)(z,P)(z,P)가 유일하다.
  • X−P=1X-P=1X이면 에서만 하나가 남고, 각각 과 이다.

이제 매 라운드에서 새로 차수가 111이 되는 정점을 조사하면 다음 표를 얻는다.

조건

1일차

2일차

3일차

4일차

X=PX=PX=P

(1,2),(1,3),(i,P)(1,2),(1,3),(i,P)

X=PX=PX=P일 때 첫 라운드에서 (i,P)(i,P)(i,P)가 모두 제거된다. 이 때문에 합 2P−42P-42P−4와 2P−32P-32P에서 각각 과 만 남아 둘째 날 제거된다.

−
2
(X−2,X)(X-2,X)(X−2,X)
  • 합이 2X−12X-12X−1인 (X−1,X)(X-1,X)(X−1,X).
  • 1X=P+1
    X=P+1
    (1,P)(1,P)(1,P)
    (1,P+1)(1,P+1)(1,P+1)
  • 그 외에는 없다.
  • xorzt\mathbin{\mathrm{xor}}z
    txorz
    0≤t≤X−P0\le t\le X-P0≤t≤X−P
    t=zt=zt=z
    000
    −
    P=
    1
    z=0,1z=0,1z=0,1
    (1,P+1)(1,P+1)(1,P+1)
    (1,P)(1,P)(1,P)
  • X−P≥2X-P\ge 2X−P≥2이면 하나를 제외해도 적어도 두 개가 남는다.
  • (
    1
    ,
    2
    )
    ,
    (
    1
    ,
    3
    )
    ,
    (
    i
    ,
    P
    )

    (P−3,P−1),(P−2,P−1)(P-3,P-1),(P-2,P-1)(P−3,P−1),(P−2,P−1)

    없음

    없음

    X=P+1X=P+1X=P+1

    (1,2),(1,3),(1,P),(1,P+1),(P−1,P+1),(P,P+1)(1,2),(1,3),(1,P),(1,P+1),(P-1,P+1),(P,P+1)(1,2),(1,3),(1,P),(1,P+1),(P−1,P+1),(P,P+1)

    (P−2,P)(P-2,P)(P−2,P)

    (P−3,P+1)(P-3,P+1)(P−3,P+1)

    (P−4,P)(P-4,P)(P−4,P)

    그 외

    (1,2),(1,3),(X−2,X),(X−1,X)(1,2),(1,3),(X-2,X),(X-1,X)(1,2),(1,3),(X−2,X),(X−1,X)

    없음

    없음

    없음

    −
    3
    (P−3,P−1)(P-3,P-1)(P−3,P−1)
    (P−2,P−1)(P-2,P-1)(P−2,P−1)

    X=P+1X=P+1X=P+1일 때 첫 라운드 뒤 XOR 2P−22P-22P−2에서 (P−2,P)(P-2,P)(P−2,P)만 남는다. 이 간선이 제거되면 합 2P−22P-22P−2에서 (P−3,P+1)(P-3,P+1)(P−3,P+1)만 남는다. 다시 이 간선이 제거되면 XOR 2P−42P-42P−4에서 (P−4,P)(P-4,P)(P−4,P)만 남는다.

    표에 적힌 간선을 제거한 뒤에는 양의 차수를 가진 모든 합 정점과 XOR 정점의 차수가 적어도 222이다. 이는 경계에서 거리가 일정한 작은 경우만 직접 확인하고, 나머지 경우에는 합을 유지하는 인접한 쌍 또는 같은 XOR 값을 만드는 다른 ttt를 선택하여 확인할 수 있다. X≥10X\ge 10X≥10이라는 조건 때문에 필요한 수들이 범위 안에 남는다. 따라서 더 이상의 제거는 일어나지 않는다.

    X≤9X\le 9X≤9에서는 위 증명에 사용한 여유가 부족하여 추가 연쇄가 생길 수 있다. 가능한 간선이 최대 (92)=36\binom{9}{2}=36(29​)=36개뿐이므로 그래프를 직접 만들고 라운드별로 시뮬레이션한다.

    각 테스트 케이스에서 PPP를 구하는 데 O(log⁡X)O(\log X)O(logX)가 걸린다. 작은 경우의 시뮬레이션 크기는 상수이므로 전체 시간 복잡도는 O(Tlog⁡X)O(T\log X)O(TlogX)이고, 추가 공간 복잡도는 O(1)O(1)O(1)이다.

    Solution written by GPT5.6