ACM 售貨員難題

2022-08-01 11:18:14 字數 1220 閱讀 9651

題目描述:售貨員的難題

某鄉有n個村莊(1< n < 20),有乙個售貨員,他要到各個村莊去售貨,各村莊之間的路程s(0 < s < 1000)是已知的,且a村到b村與b村到a村的路大多不同。為了提高效率,他從商店出發到每個村莊一次,然後返回商店所在的村,假設商店所在的村莊為 1,他不知道選擇什麼樣的路線才能使所走的路程最短。請你幫他選擇一條最短的路。

輸入村莊數n和各村之間的路程(均是整數)。

輸出最短的路程

樣例輸入

3	

0 2 1

1 0 2

2 1 0

樣例輸出
3

思路:就是dfs,但是減枝比較麻煩,還可以用dp。

這種寫法超時!!!

//

售貨員的難題.cpp : 定義控制台應用程式的入口點。

//#include

"stdafx.h

"#include

#include

#include

#include

using

namespace

std;

const

int max = 100

;int

n, ans, vis[max], map[max][max];

void dfs(int pos, int sum, int

cnt)

if (sum > ans) return

;

for (int i = 0; i < n; i++)

}}int

main()

vis[

0] = 1

; dfs(

0, 0,1

); cout

<< ans

}

預處理一下就好了。

#include#include

using

namespace

std;

int n, g[20][20], r[20][20], f[20], ans = 0x7fffffff

;void dfs(int now, int sum, int

dis)

for (int i = 1; i <= n; i++)

if (f[i] == 0

)

}int

main()

售貨員的難題

售貨員的難題 5000 ms 65535 kb 675 3441 tags 動態規劃 某鄉有n個村莊 1 n 20 有乙個售貨員,他要到各個村莊去售貨,各村莊之間的路程s 0 s 1000 是已知的,且a村到b村與b村到a村的路大多不同。為了提高效率,他從商店出發到每個村莊一次,然後返回商店所在的村...

售貨員的難題

售貨員的難題 5000 ms 65535 kb 675 3441 tags 動態規劃 某鄉有n個村莊 1 n 20 有乙個售貨員,他要到各個村莊去售貨,各村莊之間的路程s 0 s 1000 是已知的,且a村到b村與b村到a村的路大多不同。為了提高效率,他從商店出發到每個村莊一次,然後返回商店所在的村...

售貨員的難題

某鄉有n個村莊 1 n 20 有乙個售貨員,他要到各個村莊去售貨,各村莊之間的路程s 0 s 1000 是已知的,且a村到b村與b村到a村的路大多不同。為了提高效率,他從商店出發到每個村莊一次,然後返回商店所在的村,假設商店所在的村莊為 1,他不知道選擇什麼樣的路線才能使所走的路程最短。請你幫他選擇...