关注
#当时没有考虑n==1的情况,以及判断没有路径的情况, 只有63%
#不知道现在加上能不能ac
def dfs(res,num,fg,i,cnt):
if sum(fg) == 2 and fg[0] == 1 and num[i][0] != -1: #只剩两个城市 ,起点还未到达, 且可以返回起点
res.append(cnt+num[i][0])
return
if fg[0] == 0: #无法回到起点,起点被遍历两遍
return
for kk in range(n):
if num[i][kk] != -1 and fg[kk] > 0: #有路且去向城市未访问过
fg[i] -= 1
dfs(res,num,fg,kk,cnt+num[i][kk]) #
fg[i] += 1
return
n = int(input())
if n ==1: #考虑n==1的情况
print(0)
else:
m = int(input())
num =[[ -1 for i in range(n)] for j in range(n)]
for k in range(m): #构造邻接矩阵
i,j,d = [int(tmp) for tmp in input().split(' ')]
num[i][j] = d
num[j][i] = d
fg = [1]*n #改点是否访问标志
fg[0] = 2 #起点需访问两遍
res = []
dfs(res,num,fg,0,0)
if len(res) == 0: #考虑没有路径的情况
print(-1)
else:
print(min(res))
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
04-28 10:29
门头沟学院 前端工程师 点赞 评论 收藏
分享
06-04 11:45
桂林电子科技大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
22452次浏览 411人参与
# 在国企工作的人,躺平了吗? #
333020次浏览 3861人参与
# 实习吐槽大会 #
24720次浏览 117人参与
# 商战,最累的是我们 #
12580次浏览 49人参与
# 晒一晒你的工位 #
83548次浏览 298人参与
# 我的租房踩坑经历 #
17673次浏览 220人参与
# 穿越回高考你还会选现在的专业吗 #
16674次浏览 226人参与
# 小厂实习有必要去吗 #
46318次浏览 267人参与
# 毕业旅行去哪玩儿 #
929次浏览 25人参与
# 夸夸我的求职搭子 #
190714次浏览 1890人参与
# 携程求职进展汇总 #
529224次浏览 3937人参与
# 产运销实习日记 #
51857次浏览 548人参与
# 你小时候最想从事什么职业 #
95435次浏览 1719人参与
# 高学历就一定能找到好工作吗? #
47506次浏览 589人参与
# 打工人锐评公司红黑榜 #
145173次浏览 903人参与
# 摸鱼打卡站 #
39246次浏览 687人参与
# 读研or工作,哪个性价比更高? #
61433次浏览 717人参与
# 牛友打假中心 #
89606次浏览 2649人参与
# 实习中的菜狗时刻 #
366941次浏览 3300人参与
# 求职你最看重什么? #
69445次浏览 392人参与