练习
题目内容
系统由n个任务组成,任务运行有依赖关系,前序任务执行完毕才可以启动后续任务。任务在启动前申请内存,执行完毕后释放,内存释放后可用于其他任务使用。每个任务的运行时间相等。请计算系统所有任务执行所需要的最小内存。
解答要求
时间限制: C/C++1000ms其他语言: 2000ms内存限制C/C++256MB其他语言:512MB
输入
第1行为1个正整数n,表示任务个数,n<20
第2行为n个正整数,表示每个任务所需要的内存大小,0<内存<1000
第3行为n个取值为0或1的数,表示任务0对其他任务的依赖关系,0表示不依赖,1表示依赖
…
第3+n行为n个取值为0或1的数,表示任务n-1对其他任务的依赖关系,0表示不依赖,1表示依赖
输出
输出系统任务执行所需要的最小内存
n=9
mem
= '50 50 80 40 40 40 60 60 60'
matrix = ['0 0 0 0 0 0 0 0 0',
'1 0 0 0 0 0 0 0 0',
'0 1 0 0 0 0 0 0 0',
'0 0 1 0 0 1 0 0 0',
'0 0 0 1 0 0 0 0 0',
'0 1 0 0 0 0 0 0 0'