2つの駅を指定して、直通のルートがなければ、どのように乗り換え回数が最も少ないルートを見つけますか?
777 ワード
#define N 10
void search(bool edge[N][N], int n, int cur, int end, vector &route,
vector &result) {
if (cur == end) {
if (result.empty() || route.size() < result.size()) {
result = route;
}
return;
} else {
for (int i = 0; i < n; ++i) {
if (edge[cur][i]
&& (find(route.begin(), route.end(), i) == route.end())) {
route.push_back(i);
search(edge, n, i, end, route, result);
route.pop_back();
}
}
}
}
vector findFastRoute() {
int n = 5; //
bool edge[N][N]; //
init(edge);
vector tmp;
vector result;
int start = 0;
int end = n - 2;
tmp.push_back(start);
search(edge, n, start, end, tmp, result);
return result;
}