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

    请回答下列问题:

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

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

      s = input("坑的坐标依次为:").split(',')

      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)

微信扫码预览、分享更方便