int dfs(const vector<vector<int> > &vv, vector<bool> &visited, int s, int path, int &Min) { bool flag = false; for(int i = 0; i < vv[s].size(); ++i) { if(!visited[i]) { flag = true; visited[i] = true; dfs(vv, visited, i, path+vv[s][i], Min); visited[i] = false; } } if(!flag && Min > path) Min = path; } int main() { int Min = INT_MAX; vector<vector<int> > vv; vv.push_back({0,1,2,3}); vv.push_back({1,0,4,5}); vv.push_back({2,4,0,2}); vv.push_back({3,5,2,0}); vector<bool> visited(vv.size()); for(int i = 0; i < vv.size(); ++i) { visited[i] = true; dfs(vv, visited, i, 0, Min); visited[i] = false; } cout << Min << endl; return 0; }
点赞 评论

相关推荐

牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务