TSP1 문제 sypark9 질문하시기 전에 예제의 input으론 정답이 나오는데, 답안 제출을 하면 오답이 뜨네요. 몇시간을 생각했는데 잘못된 부분을 찾지 못해서 도움을 구합니다. #include <stdio.h> #define MAXCITY 8 double matrix[MAXCITY][MAXCITY]; int isSelected[MAXCITY]; int numOfCity; int isAllSelected() { int i; for(i=0;i<numOfCity;i++) if(isSelected[i] == 0 ) return 0; return 1; } double travel(int prevCity) { int i; double distance; double minDist =9999.0; int minCity; if(isAllSelected()) return 0.0; for(i=0; i<numOfCity; i++) { if(isSelected[i]== 0) { isSelected[i] = 1; distance = travel(i); if( (distance < minDist) ) { minDist = distance; minCity = i; } isSelected[i] = 0; } } if( prevCity != -1) { minDist += matrix[prevCity][minCity]; //printf("minCity = %d\n",minCity); } return minDist; } int main() { int cases; int i,j; double inputd; double minDist; //freopen("input.txt","r",stdin); scanf("%d",&cases); while(cases--) { scanf("%d",&numOfCity); for(i=0; i<numOfCity; i++) { for(j=0; j<numOfCity;j++) { scanf("%lf",&inputd); matrix[i][j] = inputd; //printf("%.10f ",matrix[i][j]); } //printf("\n"); } for(i=0; i<MAXCITY; i++) isSelected[i] = 0; minDist = travel(-1); printf("%.10lf\n", minDist); } return 0; } 앞과 뒤에 빈 줄 하나씩을 반드시 추가하셔야 합니다. 10년 전
2개의 댓글이 있습니다. JongMan minCity를 고른 뒤에 prevCity와 minCity 사이의 거리를 더하시고 있는데, 그러면 잘못된 답을 찾을 수 있습니다~ 10년 전 link sypark9 도움 주셔서 감사합니다. ^^ 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
sypark9
질문하시기 전에
예제의 input으론 정답이 나오는데, 답안 제출을 하면 오답이 뜨네요. 몇시간을 생각했는데 잘못된 부분을 찾지 못해서 도움을 구합니다.
앞과 뒤에 빈 줄 하나씩을 반드시 추가하셔야 합니다.
10년 전