软件包安装
题目描述
Y 同学正在配置一个复杂的软件开发环境。环境中共有 个软件包,编号从 到 。
这些软件包之间存在着依赖关系。对于软件包 ,它可能依赖于 个其他软件包。这意味着,在安装软件包 之前,必须先安装它所依赖的所有软件包。值得注意的是,这种依赖关系是递归的:被依赖的软件包本身可能还依赖于其他软件包。
Y 同学现在的目标是安装编号为 的软件包。为了达成这个目标,系统会自动解析并安装所有必要的依赖包。请你帮助 Y 同学计算,为了成功安装软件包 ,总共需要安装多少个不同的软件包(包括软件包 自身)?
题目保证给出的依赖关系不会构成环(即不存在循环依赖)。
输入格式
输入共 行。
第一行包含一个正整数 ,表示软件包的总数。
接下来 行,第 行(即输入数据的第 行)描述了编号为 的软件包的依赖情况: 每行首先包含一个整数 ,表示软件包 依赖的软件包数量。 紧接着是 个整数,分别表示软件包 所依赖的各个软件包的编号。
输出格式
输出一行一个整数,表示总共需要安装的软件包数量。
样例
样例输入 #1
5
1 2
1 3
1 4
0
0
样例输出 #1
4
数据范围与约定
对于 的数据,保证 ,,且依赖关系构成一个有向无环图(DAG)。
| 子任务编号 | 分值 | 特殊性质 | |
|---|---|---|---|
| 1 | 20 | 无 | |
| 2 | 30 | ||
| 3 | 50 |
相关
在下列比赛中:
京公网安备11010802045784号