天天育儿网,内容丰富有趣,生活中的好帮手!
天天育儿网 > [蓝桥杯python] 粘木棍:有N根木棍 需要将其粘贴成M个长木棍 使得最长的和最短的的

[蓝桥杯python] 粘木棍:有N根木棍 需要将其粘贴成M个长木棍 使得最长的和最短的的

时间:2020-05-02 09:07:36

相关推荐

[蓝桥杯python] 粘木棍:有N根木棍 需要将其粘贴成M个长木棍 使得最长的和最短的的

[蓝桥杯python] 粘木棍

1、资源限制

2、输入格式

3、输出格式

4、样式输入及输出

5、代码及解析

大功告成!编写不易,大家成功后点个关注or赞谢谢~

问题描述

有N根木棍,需要将其粘贴成M个长木棍,使得最长的和最短的的差距最小。

1、资源限制

资源限制

时间限制:1.0s 内存限制:256.0MB

2、输入格式

第一行两个整数N,M。

一行N个整数,表示木棍的长度。

3、输出格式

一行一个整数,表示最小的差距

4、样式输入及输出

样例输入

3 2

10 20 40

样例输出

10

5、代码及解析

具体解析请大家自己看一下代码中的备注,在此不多做解释。

注意:代码里面很冗长,并且复杂度有点高,超时了一些

n,m = map(int,input().split())nums = list(map(int,input().split()))double = [0 for _ in range(m)]seen = []target = float("inf")def DFS(flag): #flag记录已经算过多少个数,target最小值global targetif flag == n:if m != 1 and 0 in double:returnif max(double)-min(double) > target:returntarget = max(double)-min(double)returnfor i in range(m):for j in nums:if j in seen:Noneelse:seen.append(j)double[i] += jDFS(flag+1)seen.pop()double[i] -= jDFS(0)print(target)

结果:

但是可以看出,代码还是有缺陷,但是可以解决问题

希望有大神可以在评论区提提优化意见,大家一起努力!!!

自己写的所以有点复杂,但是至少能完成嘿嘿。如果各位有优化欢迎评论区讨论!!

大功告成!编写不易,大家成功后点个关注or赞谢谢~~

[蓝桥杯python] 粘木棍:有N根木棍 需要将其粘贴成M个长木棍 使得最长的和最短的的差距最小。

如果觉得《[蓝桥杯python] 粘木棍:有N根木棍 需要将其粘贴成M个长木棍 使得最长的和最短的的》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。