3 条题解
-
1
`
#include <bits/stdc++.h> using namespace std; const int N = 520; const int INF = 0x3f3f3f3f; int f[1<<N][N], weight[N][N]; int main() { int n; cin >> n; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) cin >> weight[i][j];
memset(f, 0x3f, sizeof(f)); f[1][0] = 0; for(int mask = 0; mask < (1<<n); mask++) { for(int j = 0; j < n; j++) { if((mask >> j) & 1) { // for(int k = 0; k < n; k++) { if(!((mask >> k) & 1)) { f[mask|(1<<k)][k] = min(f[mask|(1<<k)][k], f[mask][j] + weight[j][k]); } } } } } cout << f[(1<<n)-1][n-1] << endl; return 0;
} //一路向北 `
信息
- ID
- 4
- 时间
- 5000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 177
- 已通过
- 101
- 上传者