vjerksen   6년 전

Tree + Dynamic Programming 이라고 생각하고 문제를 해결하려 했습니다.


1. 간선을 입력 받는다.

2. 그래프를 통해 트리를 구현한다.

3. value라는 구조체를 선언해서 색의 종류에 따라 값을 저장한다.

4. "dp[now][color][val] : 현재 now번인 노드에서 color인 색을 가지며, val만큼의 값을 가지고 있을 때의 가지 수" 라고 생각하고 solve함수를 구현


혹시 제가 접근한 방법 자체가 오류인지, 구현 과정에서 오류를 범했는 지에 대해서, 저의 턱없이 모라잔 지식으로는 알 길이 없습니다. 이미 이 문제를 해결하신 분들, 알고리즘 분야의 고수님들, 이 문제에 관심이 있으신 분들 모두에게 도움을 청합니다.

solveit   6년 전

red 부분에서 부모 노드가 빨간색인데 자식 노드가 파란색일 수 있을까요.

문제에 나와있는걸로 봤을때 파란색은 인접 노드의 색깔이 초록색이어야만 하는것 같은데요

vjerksen   6년 전

@solveit

RR RG RB : 현재 색이 red일 때, 다음 소켓에 연결할 수 있는 색은 redgreen.

GR GG GB : 현재 색이 green일 때, 다음 소켓에 연결할 수 있는 색은 redblue.

BR BG BB : 현재 색이 blue일 때, 다음 소켓에 연결할 수 있는 색은 green.


이렇게 고치면 예제 2번의 정답이 나오지 않습니다. 혹시 제가 놓치고 있는 부분이 있는 건가요?


댓글을 작성하려면 로그인해야 합니다.