DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

점멸 점검

문제로 돌아가기

해설

전역 점검 순서에서 간선 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