QuqqU   6년 전

47,48 번 줄을 min을 쓰지않고 


dp[next.first][0] = min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s);

라고쓰면 50%땡이나오는데


dp[next.first][0] = min(dp[next.first][0], min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s));

라고쓰면 맞았다고뜨네요..


왜 그런가요???

지금보니깐 이상하네요...

ksmin1114   6년 전

문제나 코드 전체를 보지는 않았지만 


dp[next.first][0] = min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s);

dp[next.first][0] = min(dp[next.first][0], min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s));

밑에것만 되는 이유는 기존에 배열 내에 있던 값이 더 작을 경우가 있는 것 같습니다.


QuqqU   6년 전

@ksmin1114


 1->3<-2

이렇게 1,2번 정점에서 3번 정점이 이어져있을때,


1번정점에서  next가 갱신되고 2번 정점에서 또 next가 갱신되는데,

사실상 두 next는 서로 독립적인 넥스트 아닌가요???

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