当前位置: 高中信息技术 / 综合题
  • 1. (2022高三上·浙江月考) 某会务组根据参会者到达指定上车点时间和每位参会者可以等待的时间信息,安排车辆接送参会者去宾馆(不考虑车子座位数量)。参会者到达上车点的时间和可以等待的时间用长度为 7 的字符串表示,例如“ 08:15 2”表示参会者当天8点15分到达上车点,最多等待2分钟(每个人的等待时间都小于10),那么该参会者最晚8点17分出发去宾馆(若8点17分刚到的参会者也一同出发)。

    编写Python程序,统计接送n个参会者所需的最少车辆数。运行程序,显示所有参会者提交的信息,按到达时间先后排列,再显示所需的最少车辆数,程序运行结果如图所示。

    1. (1) 若将图中第4行“08:15 4”数据改为“08:15 1”,程序输出的结果是否会发生改变(A .会改变\ B .不会改变)。
    2. (2) 实现上述功能的部分Python程序如下,请在划线处填入合适的代码。

      a = [ '08:15 4','08:14 3','08:23 4','08:15 2','08:12 2','08:17 1','08:17 3','08:19 4','08:21 4','08:17 1' ]

      def tran (str1) :

        ss = int ( str1[ : 2 ] ) * 60 + int ( str1 [3 : 6] ) 

        return ss

      for i in range( len ( a ) - 1) :

        for j in range ( len ( a ) – 1 , i , -1) : 

          if a [j] < a [j-1]:

            a [j] , a[j-1] = a [j-1] , a [j]

            n = len ( a ) 

            b = [ ]

            c = [ ]

      for i in range ( n ) :

        b . append ( tran ( a [ i ] [ : 5 ] ) )

        c . append ( b[ -1 ] + int ( a [ i ] [ 6: ] ) ) 

        for j in range ( i , 0 , -1 ) :

          

          if c[k] > c[j]:

            b[k] , b[j] = b[j] , b[k]

            c[k] , c[j] = c[j] , c[k] 

          else :

            break

      sum = 0

      flag = [ False for i in range ( n ) ] 

      for i in range ( n ) :

        if flag [ i ] == False:

          for j in range ( i , n ) :

            if: flag [ j ] = True

      print ('接送所有参会者最少需要%d 辆车' %sum)

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