每日打卡 还剩999道题
作者:
__NULL__
,
2024-08-23 19:11:30
,
所有人可见
,
阅读 106
最短Hamilton路径
#include<bits/stdc++.h>
using namespace std;
const int MAXX = 20, MAXN = 1 << MAXX;
int n, dp[MAXN][MAXX], a[MAXX][MAXX];
int main(){
cin >> n;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cin >> a[i][j];
}
}
memset(dp, 0x3f, sizeof(dp));
dp[1][0] = 0;
for(int i = 0; i < (1 << n); i++){
for(int j = 0; j < n; j++){
if(i >> j & 1 != 0){
for(int k = 0; k < n; k++){
if(i >> k & 1 != 0){
dp[i][j] = min(dp[i][j], dp[i - (1 << j)][k] + a[k][j]);
}
}
}
}
}
cout << dp[(1 << n) - 1][n - 1] << '\n';
return 0;
}
还有多少
反正一直写,写不完