#define N 10
void search(bool edge[N][N], int n, int cur, int end, vector<int> &route,
vector<int> &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<int> findFastRoute() {
int n = 5; //实际结点数
bool edge[N][N]; //点间是否连接
init(edge);
vector<int> tmp;
vector<int> result;
int start = 0;
int end = n - 2;
tmp.push_back(start);
search(edge, n, start, end, tmp, result);
return result;
}
给定两个站点,如果没有直达的路线,如何找到换乘次数最少的路线?
最新推荐文章于 2021-03-15 11:23:31 发布