Problem Solving/boj

[BOJ 15107] Rainbow Roads

pani_ 2026. 2. 13. 23:11

걍 좀 재밌게 푼 것 같아..
그림은 대충 그림판으로 휘적휘적, 문제요약 x

대충 이렇게 u-v-w로 연속된 정점들에 대해 u-v랑 v-w를 잇는 간선 색이 같으면, v를 루트로 볼 때 u의 서브트리와 w의 서브트리 내의 정점들은 답이 될 수 없다.
 
이제 저기서 v를 루트로 대충 dfs를 한다고 생각해보자. 진행중에 새로운 세 정점 x, y, z가 연결되어 있고, x-y와 y-z의 색이 같은 것은 다음과 같은 2가지 경우가 있다

초록색처럼 이제 x-y-z들이 부모로부터 내려오는 간선을 포함하는게 아니면, 어차피 부모로 영향을 못줘서 무시해도 된다.
파란색처럼 x-y-z들이 부모로 거슬러 올라갈 수 있으면, 그냥 모든 정점들이 답이 될 수 없다.
 
그래서 적당히 방문처리하면서 dfs슥슥하면 풀린다.
코드:
http://boj.kr/0fcda55946ec468bb31424ed1633ae37
 
근데 방문처리 안해도 돌길래 데이터 추가 요청 했어요 b

'Problem Solving > boj' 카테고리의 다른 글

기록용  (0) 2025.10.24
2025. 01. 15 - 2025. 02. 12  (0) 2025.02.13
[BOJ 33160] 꽃 풀이  (0) 2025.01.16
2025. 01. 14  (2) 2025.01.15
2025. 01. 13 플랜디  (2) 2025.01.14