最短Hamilton路径(状态压缩) – 算法板子

#include<bits/stdc++.h> using namespace std; const int N  = 2e6; int f[N][21]; int m[21][21]; int n; int main() {     cin >> n;     for (int r = 1; r <= n; ++r) {         for (int c = 1; c <= n; ++c) {             cin >> m[r][c];         }     }     memset(f, 0x3f, sizeof f);     f[1][1] = 0;     for (int i = 0; i < 1 << n; ++i) {         for (int j = 1; j <= n; ++j) {             if (f[i][j] >= 0x3f3f3f3f) continue;             if ((i >> (j - 1) & 1) == 0) continue;             for (int k = 1; k <= n; ++k) {                 if (k == j) continue;                 if (i >> (k - 1) & 1) continue;                 f[i | 1 << (k - 1)][k] = min(f[i | 1 << (k - 1)][k], f[i][j] + m[j][k]);             }         }     }     cout << f[(1 << n) - 1][n] << endl;     return 0; }

最短Hamilton路径(状态压缩) – 算法板子leetcode刷题题解部分资料来自网络,侵权毕设源码联系删除

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 最短Hamilton路径(状态压缩) – 算法板子leetcode刷题题解