2개의 댓글이 있습니다.
-
-
skylife927 -
어떤 예외케이스가 있는지.. 흠..
10년 전 link
-
-
-
skylife927 -
- N이 1인경우를 고려안했네요.
- MIN값에 대한 초기화가 안되어 있었습니다.
해결완료!
10년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.

skylife927
예제는 다 맞췄는데 출제하고 나면 오류로 나오는데요.
1. 순열을 구한다.
2. 해당 나열의 값을 더한다.
3. 혹 MIN값 이상된다면 return한다.(가지치기)
왜그런지 이상하네요@_@;
~~~ c++
#include
using namespace std;
double abc[10][10];
double MIN=999999;
void swap(int* arr, int i, int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
void perm(int* arr, int depth, int n){
cout<
}cout<
//한턴에 다음것을 가지고 좌표를 찾아 값을 넣는다.
double temp = abc[arr[i]][arr[i+1]];
if(depth == n){
/*for(int i=0; i
double sum=0;
for(int i=0; i
sum+=temp;
if(sum > MIN) return;
}
if(MIN > sum) MIN = sum;
return;
}
for(int i=depth; i<n; i++){
swap(arr, i, depth);
perm(arr, depth+1, n);
swap(arr, i ,depth);
}
}
int main(int argc, char** argv)
{
int test_case;
int T;
}
10년 전