设有n个城市组成的交通图,一个售货员从住地城市q出发,到其它城市各一次去推销货物,最后回到住地城市。 要求:假定两个城市a,b 从a到b的路程花费w_ab是已知的,问应该怎样选择一条花费最少的路线?
输入格式: 第一行n m q
,n和m两个整数分别表示城市数n以及城市之间的单向路数量m,q表示住地城市(出发城市) 之后m行 a b w
分别表示从城市a到城市b的单向路程的花费w_ab。 输出格式: 第一行输出最小花费是D
,D表示计算得到的最小花费。 第二行输出最小花费共有N种方案,分别是:
,N表示最小花费方案的种类, 接下来N行输出每种方案的前往顺序,以字典序排序输出,中间以空格分隔。
输入样例: 3 6 A A B 12 A C 4 B C 5 B A 8 C B 7 C A 2
输出样例: 最小花费是19 最小花费共有2种方案,分别是: A B C A C B
from itertools import permutations
def tsp(n, m, q, roads):
from sys import maxsize
cities = set()
city_indices = {}
index_cities = {}
# 建立城市与索引的映射关系
for i, road in enumerate(roads):
cities.add(road[0])
cities.add(road[1])
cities = sorte
标签:输出,educoder,花费,城市,最小,算法,cities,头哥,road
From: https://blog.csdn.net/m0_62222486/article/details/139188456