原题链接:蓝桥杯2013年第四届真题-大臣的旅费
解题思路:
思路参考另外的大佬,注意深度搜索时需要不断修改代价值,最终找到最大代价。
注意事项:
参考代码:
def dfs(root, cur_price): global map_ global visited global cost global far_node visited[root] = True if cur_price > cost: cost = cur_price far_node = root # iterate the neighbor(s) for i in range(len(map_[root])): if not visited[map_[root][i][0]]: visited[map_[root][i][0]] = True dfs(map_[root][i][0], cur_price + map_[root][i][1]) visited[map_[root][i][0]] = False n = int(input()) map_ = [[] for _ in range(n + 1)] visited = [False for _ in range(n +1)] far_node, cost = 0, 0 for i in range(1, n): p, q, d = map(int, input().split()) map_[p].append([q, d]) map_[q].append([p, d]) dfs(1, 0) visited[1], cost = False, 0 dfs(far_node, 0) print(10 * cost + (1 + cost) * cost // 2)
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复