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

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

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

Blink Inspection

問題に戻る

解説

전역 점검 순서에서 간선 eee보다 먼저 점검된, 정점 vvv에 연결된 간선 수의 홀짝을 xv,ex_{v,e}xv,e​라 하자. 간선 e=uve=uve=uv에서 비용이 발생할 필요충분조건은

SuXORSvXORxu,eXORxv,e=1S_u\mathbin{\mathrm{XOR}}S_v\mathbin{\mathrm{XOR}}x_{u,e}\mathbin{\mathrm{XOR}}x_{v,e}=1Su​XORSv​

이다.

차수가 ddd인 정점에서 연결된 간선의 국소 순위는 0,1,⋯ ,d−10,1,\cdots,d-10,1,⋯,d−1이다. 따라서 정확히 ⌊d/2⌋\lfloor d/2\rfloor⌊d/2⌋개의 incidence가 xv,e=1x_{v,e}=1을 가진다. 반대로 임의의 개를 국소 순서의 두 번째, 네 번째, 위치에 놓을 수 있다.

트리에서는 정점마다 정한 임의의 국소 간선 순서들이 항상 하나의 전역 순서로 합쳐진다. 각 정점의 국소 선후관계를 합친 방향 그래프에 사이클이 있다면, 트리의 선 그래프 구조상 그 사이클은 한 정점에 대응하는 완전그래프 안에 있어야 한다. 그러나 그 완전그래프의 방향은 하나의 선형 순서에서 왔으므로 사이클이 없다.

따라서 문제는 각 정점 vvv에서 정확히

qv=⌊deg⁡(v)2⌋q_v=\left\lfloor\frac{\deg(v)}2\right\rfloorqv​=⌊2deg(v)​⌋

개의 incidence를 111로 고르는 정적 최적화가 된다.

트리를 루팅한다. 부모 간선의 vvv 쪽 값이 ppp일 때 서브트리 최소 비용을 dp[v][p]\mathrm{dp}[v][p]dp[v][p]라 하자. 자식 www와의 간선 eee에서 쪽 값을 로 정했을 때의 최적 비용을

Ge(a)=min⁡b∈{0,1}(dp[w][b]+Ce[SvXORSwXORaXORb=1])G_e(a)=\min_{b\in\{0,1\}}\left(\mathrm{dp}[w][b]+C_e[S_v\mathbin{\mathrm{XOR}}S_w\mathbin{\mathrm{XOR}}a\mathbin{\mathrm{XOR}}b=1]\right)Ge​(a)=

로 둔다. 모든 자식에서 a=0a=0a=0을 선택한 비용에 Δe=Ge(1)−Ge(0)\Delta_e=G_e(1)-G_e(0)Δe​=Ge​(가 가장 작은 개를 더하면 된다.

각 정점에서 Δ\DeltaΔ를 정렬한다. 전체 시간 복잡도는 O(Nlog⁡N)O(N\log N)O(NlogN)이고 메모리 복잡도는 O(N)O(N)O(N)이다.

Solution written by GPT5

XOR
xu,e​XOR
xv,e​=
1
xv,e​=1
⌊d/2⌋\lfloor d/2\rfloor⌊d/2⌋
⋯\cdots⋯
vv
v
aaa
b∈{0,1}min​(dp[w][b]+Ce​[Sv​XORSw​XORaXORb=1])
1
)
−
Ge​(0)
qv−pq_v-pqv​−p