学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
某工程包含n个任务(编号为0-n-1),每天可以有多个任务同时进行。某些任务之间有依赖关系,如图a所示,任务4依赖于任务1,任务1依赖于任务2。即任务2完成后才可以开始任务1,任务1完成后才可以开始任务4,不存在一个任务依赖于多个任务,或多个任务依赖于同一个任务的情况。
现已对该工程的依赖关系进行了梳理,结果如图b所示,标记“T”表示依赖关系需保留,标记“F”表示依赖关系需删除。
根据每个任务完成所需的天数和梳理后的依赖关系,编写程序,首先删除标记为“F”的依赖关系,然后计算工程最快完成所需的天数,并以工程最快完成所需的天数为期限,计算每个任务最晚必须开始的时间。

a                                             b


请回答下列问题:
(1)若某工程有6个任务,任务间依赖关系如图a所示,完成任务0~5所需天数分别为2,1,3,5,1,6,则工程最快完成需要______天。
(2)定义如下erase(1st)函数,参数1st列表的每个元素表示一个依赖关系。函数的功能是删除标记为“F”的依赖关系,返回保留的依赖关系的个数。
def erase(lst):
       i=0
       j=len(1st)-1
       while i<=j:
             if 1st[i][2]=='T':
                    i+=1
             else:
                    if lst[j][2]=='T':
                           1st[i]=1st[i]
                           i+=1
                       j-=1
       return i
若1st列表依次存储图b所示的依赖关系,如1st[0]为[0,5,T],调用erase(Ist)的数,则语句
"1st[i]=1st[j]”的执行次数为_____
(3)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
def proc(n,lst,task):
       pr=[0]*n
       w=[0]*n                                #w[i]存放任务1最晚必须开始的时间
       m=erase(1st)
       for i in________
             task[lst[i][1]][1]=1st[i][0]]
             pr[lst[i][0]]=1
       c=[]
       days=0                       #days存放工程最快完成所需的天数
       for I in range(n):
             if pr[i]==0:
                    k=i
                    s=0
                    while k!=-1:
                           c.append(k)
                           s+=task[k][0]
                       ________
                    if s>days:
                           days=s
       for i in range(n-1,-1,-1):
             k=c[i]
             if task[k][1]==-1:
                    w[k]=days-task[k][0]+1
             else:
                  ____
#输出days,以及保存在w中的每个任务最晚必须开始的时间,代码略
'''
工程包含的任务数存入变量n
任务间的依赖关系存入1st列表
1st[0]包含3项,任务1st[i][0]依赖于任务1st[i][1],1st[i][2]存放保留/删除标记,任务数据存入task列表
task[i]包含2项,task[i][0]为完成任务主所需天数,task[i][1]的初值为-1
代码略
'''
proc(n,1st,task)
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交