Permutation/Path - Traveling Salesman Problem

時間制限 : 1 sec, メモリ制限 : 65536 KB
英語版はこちら

巡回セールスマン問題

重み付き有向グラフ G(V,E) について、以下の条件を満たす最短経路の距離を求めて下さい:

  • ある頂点から出発し、出発点へ戻る閉路である。
  • 各頂点をちょうど1度通る。

入力

|V| |E|
s0 t0 d0
s1 t1 d1
:
s|E|-1 t|E|-1 d|E|-1

|V|, |E| はそれぞれグラフ G の頂点の数と辺の数を示す。グラフ G の頂点にはそれぞれ 0, 1, ..., |V|-1 の番号が付けられている。

si, ti はグラフ Gi 番目の辺が結ぶ2つの頂点を表す(有向)。disiti の間の距離 (i 番目の辺の重み)である。

出力

最短経路の距離を1行に出力する。条件を満たす経路がない場合は -1 と出力する。

制約

  • 2 ≤ |V| ≤ 15
  • 0 ≤ di ≤ 1,000
  • G に多重辺はない

入力例 1

4 6
0 1 2
1 2 3
1 3 9
2 0 1
2 3 6
3 2 4

出力例 1

16

入力例 2

3 3
0 1 1
1 2 1
0 2 1

出力例 2

-1