-
[알고리즘] 백준 10971번: 외판원 순회 2 - C++알고리즘/백준 2020. 12. 12. 21:40728x90
10971번: 외판원 순회 2
첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j
www.acmicpc.net
#include <vector> #include <iostream> #include <algorithm> using namespace std; int main() { int N; cin >> N; vector<vector<int>> w(N, vector<int>(N, 0)); vector<int> d(N); for (int i = 0; i < N; i++) { d[i] = i; for (int j = 0; j < N; j++) { cin >> w[i][j]; } } int min_ans = 100000000, ans = 0; bool isTravel = true; do { isTravel = true; ans = 0; for (int i = 0; i < N - 1; i++) { if (w[d[i]][d[i + 1]] != 0) { ans += w[d[i]][d[i + 1]]; } else { isTravel = false; break; } } if (isTravel && w[d[N - 1]][d[0]] != 0) { ans += w[d[N - 1]][d[0]]; min_ans = min(ans, min_ans); } } while (next_permutation(d.begin(), d.end())); cout << min_ans << endl; }
github.com/waves123/10971/blob/master/10971/10971.cpp
waves123/10971
baekjoon 10971 - https://www.acmicpc.net/problem/10971 - waves123/10971
github.com
728x90'알고리즘 > 백준' 카테고리의 다른 글
[알고리즘] 백준 9663번: N-Queen - C++ (0) 2020.12.12 [알고리즘] 9019번: DSLR - C++ (0) 2020.12.12 [알고리즘] 백준 10819번: 차이를 최대로 - C++ (0) 2020.12.12 [알고리즘] 백준 1476번 : 날짜 계산 - C++ (0) 2020.12.12 [알고리즘] 백준 17974번: 모든 순열 - C++ (0) 2020.12.12