AcWing 91 最短Hamilton路徑

2021-09-23 22:29:30 字數 1023 閱讀 4074

91. 最短hamilton路徑

給定一張 nn 個點的帶權無向圖,點從 0~n-1 標號,求起點 0 到終點 n-1 的最短hamilton路徑。 hamilton路徑的定義是從 0 到 n-1 不重不漏地經過每個點恰好一次。

輸入格式

第一行輸入整數nn。

接下來nn行每行nn個整數,其中第ii行第jj個整數表示點ii到jj的距離(記為a[i,j])。

對於任意的x,y,zx,y,z,資料保證 a[x,x]=0,a[x,y]=a[y,x] 並且 a[x,y]+a[y,z]>=a[x,z]。

輸出格式

輸出乙個整數,表示最短hamilton路徑的長度。

資料範圍

1≤n≤201≤n≤20

0≤a[i,j]≤1070≤a[i,j]≤107

輸入樣例:

50 2 4 5 1

2 0 6 5 3

4 6 0 8 3

5 5 8 0 5

1 3 3 5 0

輸出樣例:

#include

using namespace std;

typedef

long

long ll;

const

int n=

20,m=

1<<20;

int n;

int f[m]

[n],w[n]

[n];

intmain()

}memset

(f,0x3f

,sizeof

(f))

;//把所有的狀態初始化成正無窮

f[1][

0]=0

;//有1個點,在0號點,且沒走過路程,初始化就為0

for(

int i=

0;i<

1<}}

} cout<<< n)-1

][n-1]

}

AcWing 91 最短Hamilton路徑

狀壓dp 二進位制 給定一張 n 個點的帶權無向圖,點從 0 n 1 標號,求起點 0 到終點 n 1 的最短 hamilton 路徑。hamilton 路徑的定義是從 0 到 n 1 不重不漏地經過每個點恰好一次。輸入格式 第一行輸入整數 n。接下來 n 行每行 n 個整數,其中第 i 行第 j ...

91 AcWing 最短Hamilton路徑

原題鏈結 給定一張 n 個點的帶權無向圖,點從 0 n 1 標號,求起點 0 到終點 n 1 的最短hamilton路徑。hamilton路徑的定義是從 0 到 n 1 不重不漏地經過每個點恰好一次。輸入格式 第一行輸入整數n。接下來n行每行n個整數,其中第i行第j個整數表示點i到j的距離 記為a ...

AcWing 1134 最短路計數

題目描述 給出乙個 n 個頂點 m 條邊的無向無權圖,頂點編號為 1 到 n。問從頂點 1 開始,到其他每個點的最短路有幾條。輸入格式 第一行包含 2 個正整數 n,m,為圖的頂點數與邊數。接下來 m 行,每行兩個正整數 x,y,表示有一條頂點 x 連向頂點 y 的邊,請注意可能有自環與重邊。輸出格...