回溯法解决城市旅游路径规划
思路:此问题是一个寻找图的回路问题。当达到一个城市后,寻找与之相连的所有城市,并对与之相连的每个城市进行深度优先遍历。
递归路径如下:
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;
int N; //城市个数
int pay = INT_MAX;//交通费用
vector<int> path; //路径
vector<int> best_path;//费用最小路径
vector<vector<int>> matrix(50, vector<int>(50, -1));
vector<int> vis(50, 0); // 访问标志
void find_cycle(vector<vector<int>> matrix, vector<int>& vis, int start, int current, int& len)
{
if (start < 0 || start > N)//起点错误
{
cout << "起点错误" << endl;
return;
}
if (current >