之前图相关的都用的领接数组,这换成了领接矩阵,半天没反应过来,我去。。。。。 #include<iostream> #include<algorithm> #include<fstream> #include<map> #include<vector> #include<string> #include<iostream> using namespace std; void dfs(vector<vector<int>> &path, int s, int e, int v,int &res,int L,int M) {     if (L > M)         return;     if(L==M&&s==e){         res = min(res, v);         return;     }     for (int i = 0; i < path[0].size(); ++i) {         if (path[s][i] != 0)             dfs(path, i, e, v + path[s][i], res, L + 1, M);     } } vector<vector<int>> solve(vector<vector<int>> &path,int M) {     vector<vector<int>> res(path.size(), vector<int>(path[0].size(), -1));     for(int i=0;i<path.size();++i)         for (int j = 0; j < path[0].size(); ++j) {             int r=INT32_MAX;             dfs(path,i,j,0,r,0,M);             res[i][j] = r;         }     return res; } int main(void){     int N, M;     while (cin >> N >> M) {         int N1, N2;         cin >> N1 >> N2;         vector<vector<int>> path;         for (int i = 0; i < N1; ++i) {             vector<int> temp;             int data;             for (int j = 0; j < N2; ++j) {                 cin >> data;                 temp.push_back(data);             }             path.push_back(temp);         }         vector<vector<int>> res = solve(path, M);         for (auto v : res) {             for (auto i : v)                 cout << i << " ";             cout << endl;         }     }     getchar();     return 0; }
点赞 评论

相关推荐

牛客网
牛客企业服务