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

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

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

Yet Another XOR Problem

問題に戻る

解説

A1A_1A1​과 ANA_NAN​은 어떤 연산으로도 바뀌지 않는다. 따라서 A1=B1A_1=B_1A1​=B1​과 AN=BNA_N=B_NAN​=BN​이 필요하다.

인접 XOR 배열 DDD를 Di=Ai⊕Ai+1D_i=A_i \oplus A_{i+1}Di​=Ai​⊕A ()로 정의하자. 위치 에 연산을 수행하면 만 바뀌고, 과 만 영향을 받는다. 계산하면 두 값이 서로 바뀌고 나머지 원소는 변하지 않는다.

즉 한 번의 연산은 인접 XOR 배열에서 서로 이웃한 두 원소를 swap하는 것과 같다. 이웃한 두 원소의 swap을 원하는 만큼 할 수 있으므로 인접 XOR 배열의 원소들은 임의의 순서로 재배열될 수 있다.

반대로 A1A_1A1​이 정해져 있으면 인접 XOR 배열은 전체 배열을 유일하게 결정한다. 따라서 AAA를 BBB로 만들 수 있는 필요충분조건은 다음과 같다.

  • A1=B1A_1=B_1A1​=B1​.
  • AN=BNA_N=B_NAN.

각 테스트 케이스마다 두 인접 XOR 배열을 만든 뒤 정렬하여 비교하면 된다. 전체 시간 복잡도는 O(Nlog⁡N)O(N \log N)O(NlogN)이고, 전체 메모리 복잡도는 O(N)O(N)O(N)이다.

Solution written by GPT5.5

i+1​
1≤i≤N−11 \leq i \leq N-11≤i≤N−1
iii
AiA_iAi​
Di−1D_{i-1}Di−1​
DiD_iDi​
​
=
BN​
  • Ai⊕Ai+1A_i \oplus A_{i+1}Ai​⊕Ai+1​ (1≤i≤N−11 \leq i \leq N-11≤i≤N−1)들의 멀티셋과 Bi⊕Bi+1B_i \oplus B_{i+1}Bi​⊕Bi+1​ (1≤i≤N−11 \leq i \leq N-11≤i≤N−1)들의 멀티셋이 같다.