#P1949. Chores

    ID: 950 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>动态规划树形DP搜索DFSUSACO 2002 February

Chores

题目描述:

农夫约翰一家在挤奶时会一起帮忙做各种杂务,力求以最快的速度完成所有事情。在约翰的农场里,有些杂务必须在其他杂务完成之后才能开始,例如,在奶牛还没被赶进牛棚之前,就不可能给它们清洗。 农夫约翰有一份包含 NN3N100003 \leq N \leq 10000)项必须完成的杂务清单。每项杂务都需要一个整数时间(1完成所需时间1001 \leq 完成所需时间 \leq 100)来完成,并且在开始这项杂务之前可能有其他必须先完成的杂务,我们将这些称为前置杂务。至少有一项杂务没有前置杂务,那就是第一项杂务,编号为 11。农夫约翰的杂务清单排列得很好,第 KK 项 (K>1K > 1)杂务的前置杂务只能是编号为 11K1K - 1 的杂务。编写一个程序,读取从 11NN 的杂务清单,以及与之相关的完成时间和所有前置杂务。现在计算完成所有 NN 项杂务所需的最短时间。当然,彼此不依赖的杂务可以同时进行。

输入:

11 行输入一个整数 NN

22 行到第 N+1N + 1 行:共 NN 行,每行都有几个用空格分隔的整数。

22 行包含第 11 项杂务的信息;第 33 行包含第 22 项杂务的信息,以此类推。每行包含完成该项杂务所需的时间、前置杂务的数量 PiPi (0Pi1000 \leq P_i \leq 100),以及 PiPi 个前置杂务的编号(当然范围是 1N1到N)。

输出:

输出单独一行,包含一个整数,该整数表示完成所有杂务所需的最少时间。

输入数据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

提示:

以下是一种任务安排时间表: 任务 11 从时间 00 开始,在时间 55 结束。 任务 22 从时间 55 开始,在时间 66 结束。 任务 33 从时间 66 开始,在时间 99 结束。 任务 44 从时间 55 开始,在时间 1111 结束。 任务 55 从时间 1111 开始,在时间 1212 结束。 任务 66 从时间 1111 开始,在时间 1919 结束。 任务 77 从时间 1919 开始,在时间 2323 结束。

来源:

美国计算机奥林匹克竞赛(USACO)2002 年 2 月赛