#P1949. Chores
Chores
题目描述:
农夫约翰一家在挤奶时会一起帮忙做各种杂务,力求以最快的速度完成所有事情。在约翰的农场里,有些杂务必须在其他杂务完成之后才能开始,例如,在奶牛还没被赶进牛棚之前,就不可能给它们清洗。 农夫约翰有一份包含 ()项必须完成的杂务清单。每项杂务都需要一个整数时间()来完成,并且在开始这项杂务之前可能有其他必须先完成的杂务,我们将这些称为前置杂务。至少有一项杂务没有前置杂务,那就是第一项杂务,编号为 。农夫约翰的杂务清单排列得很好,第 项 ()杂务的前置杂务只能是编号为 到 的杂务。编写一个程序,读取从 到 的杂务清单,以及与之相关的完成时间和所有前置杂务。现在计算完成所有 项杂务所需的最短时间。当然,彼此不依赖的杂务可以同时进行。
输入:
第 行输入一个整数 。
第 行到第 行:共 行,每行都有几个用空格分隔的整数。
第 行包含第 项杂务的信息;第 行包含第 项杂务的信息,以此类推。每行包含完成该项杂务所需的时间、前置杂务的数量 (),以及 个前置杂务的编号(当然范围是 )。
输出:
输出单独一行,包含一个整数,该整数表示完成所有杂务所需的最少时间。
输入数据1
7
5 0
1 1 1
3 1 2
6 1 1
1 2 2 4
8 2 2 4
4 3 3 5 6
输出数据1
23
提示:
以下是一种任务安排时间表: 任务 从时间 开始,在时间 结束。 任务 从时间 开始,在时间 结束。 任务 从时间 开始,在时间 结束。 任务 从时间 开始,在时间 结束。 任务 从时间 开始,在时间 结束。 任务 从时间 开始,在时间 结束。 任务 从时间 开始,在时间 结束。
来源:
美国计算机奥林匹克竞赛(USACO)2002 年 2 月赛