'
이 문제 해답이
if (dist[a][b] <= x || dist[c][d] <= y) {
yes = true;
} else {
yes = (dist[a][c] + dist[b][d] + 2 <= x + y) ||
(dist[a][d] + dist[b][c] + 2 <= x + y);
각 노드에서 노드까지 거리 다 구하고 위에 조건문으로 판별하던데 이게 왜 해답이 되는 거?? 뭔 알고리즘이여
'
이 문제 해답이
if (dist[a][b] <= x || dist[c][d] <= y) {
yes = true;
} else {
yes = (dist[a][c] + dist[b][d] + 2 <= x + y) ||
(dist[a][d] + dist[b][c] + 2 <= x + y);
각 노드에서 노드까지 거리 다 구하고 위에 조건문으로 판별하던데 이게 왜 해답이 되는 거?? 뭔 알고리즘이여
if문은 두 경로중 하나라도 조건을 만족하면 다른 한 경로를 직접 이어서 길이1짜리로 만들수 있으니까 ok else문은 각각 c-b를 잇는 경우랑 b-d를 잇는 경우를 따지는 것 같은데, 왜 각각 크기비교 하지않고 합으로 비교해도 되는지 모르겠고 수많은 선택지 중에서 c-b와 b-d가 왜 최적인지도 잘 모르겠음 이 코드 짠 사람한테 물어보는게 좋을듯
만약 풀이 들으면 여기에도 공유해주셈