原题链接:蓝桥杯基础练习VIP-Huffuman树
解题思路: 使用数列内置函数append、pop等
注意事项:range的使用时,里面应该是数值类型
参考代码:
n=int(input()) str01=list(map(int,input().split())) total=0 str01.sort() # 一开始便从小到大排序 找出最小的两个值 for i in range(len(str01)-1): # 应在排除前将最小的两项和加到数列末尾 str01.append(str01[0]+str01[1]) # 记录此时的费用 即此次还未删除 total+=str01[0]+str01[1] # 除去前两项最小的 # 由于在第一次删除最小的时第二个最小的移动到第一位 故删除两次才行 str01.pop(0) str01.pop(0) # 将添加和删除后的数组重新排序 再次循环! str01.sort() print(total)
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复