1. 某公路由于长期没有维修,路上出现了很多个坑。为了尽快填补好这些坑,交通管理部门决定对m处地段采取交通管制。将该公路看成一条直线,坑就是直线上的坐标点,坑所在的路段需要封控管制。例如某管制路段2~4,需封控2、3、4路段。交管部门为了减少管制路段的长度,希望将这n个坑分成m段(一段可以只有一个坑),使得这m段公路的总长度最小。请你根据n个坑的位置(位置已按照从小到大进行排序),计算管制路段最小的总长度。代码运行效果如题图所示。

请回答下列问题:

(1) 上图所示的例子中,若将路段数量修改为5,则管制路段总长度为
(2) 实现上述功能的Python程序如下,请在划线处填入合适的代码。

m=int(input("路段数量: "))

s=input("坑的坐标依次为:").split(',')  #实现字符串“3,4,6”,转化为列表["3","4","6"]

n=len(s)

for i in range(n) :

    s[i]=int(s[i])

flag=[False]*(n-1)

for i in range(1,m) :

    k=-1

    for j in range(n-1) :

        if :

            if k==-1 or s[j+1]-s[j]>s[k+1]-s[k]:

                k=j

    flag[k]=True

print("维修管制的路段依次为:")

dis,t=0,0

for i in range(n-1):

    if flag[i]:

        print(s[t],"~",s[i])

        dis+=s[i]-s[t]+1

       

print(s[t],"~",s[n-1])

dis=

print("管制总长度为",dis)

【考点】
常见数据类型、数组; 循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
真题演练
换一批