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

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

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

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