编程题
### 问题描述 学习是一条永无止境的路,一个无限延伸的旅程。在这个不断变化的世界里,学习已经成为了每个人必须面对的挑战。无论你是谁,你都需要时刻保持学习的状态,以跟上时代的步伐,不断提升自己的技能和知识。 蓝桥最近新推出一个“蓝桥云树”的产品,帮助大家学习 IT 编程的知识。 首先是最基础的课程——《C 语言程序设计》,任何学生进入“蓝桥云树”时,都必须先学这门课程,学完之后就可以自主选择接下去的内容之一。 值得注意的是,学习任何课程后都需要等待一定的时间才可以开启下门课程的学习,且任何课程只有一条学习路径才能到达,所以学习路径是一棵树! 假设学生刚刚学完初始课程《C 语言程序设计》,还拥有 $x$ 分的学习时间,他最多可以学习多少门课程? ### 输入格式 首先是一个整数 $N$,表示课程的数量(含初始课程)。 接着是 $N - 1$ 行,每一行是三个数字 $i$、$j$、$d$,表示学完第 $i$ 门课程后,需要等待 $d$ 分时间后,才可以学习 第 $j$ 门课程。 课程的编号从 $0$ 到 $N - 1$。 接着输入一个整数 $q$,代表查询的数量。 后跟 $q$ 行,每行一个整数 $x$,代表学生拥有 $x$ 分钟的时间。 ### 输出格式 对于每个查询例子,输入一个整数,即学生还能够学完的最多课程数(不含初始课程)。 ### 样例输入 ```text 3 1 0 5 2 0 3 3 3 10 11 ``` ### 样例输出 ```text 2 2 3 ``` ### 评测数据规模 对于所有评测数据,$2 \lt n \lt 500,1 \le d \le 10000,0 \le x \le 5000000,1 \le q \le 1000$。
查看答案
赣ICP备20007335号-2