题库 蓝桥杯青少组题库 题目列表 C++编程实现:活动人数有一个大型企业集团,由N个部门...
问答题

C++编程实现:活动人数

有一个大型企业集团,由N个部门组成,编号从1N。这些部门之间的层次关系形成了一个树状结构,一个上级部门可能会有1个或多个直接下级部门,一个下级部门只有一个直接上级部门。

本月集团举办了一个大型活动,这次的活动组织方按如下要求安排活动:

1. 来的人越多越好;

2. 如果一个上级部门参加本次活动,那么他们的直接下级部门就不能参加,而他的间接下集部门可以参加(如下图,如果部门1参加,那么部门23不能参加,而部门456可以参加)。

请你帮他们计算一下,如何安排可以使参加活动的人数最多,并输出参加活动的最多人数。

例如:当N=6,每个部门编号为16,部门上下级关系和部门的人数如下图所示:

注意:示例中,部门1是层级最高的部门,没有直接上级,故将其直接上级部门设为0

当安排(1456)这4个部门参加活动时,人数最多,为11,所以输出11

输入描述

第一行输入一个正整数N1≤N≤100000),表示集团所有部门的数量

接下来有N行,每行输入三个非负整数FSC,(0≤F≤N1≤S≤NF≠S1≤C≤1000),F表示是部门S的直接上级,C表示部门S的人数,整数之间用一个空格隔开

注意:如果是最上层的部门,其直接上级部门编号为0

输出描述

输出一个整数,表示参加活动的最多人数

 

样例输入

6

0 1 2

1 2 4

1 3 3

2 4 3

3 5 2

3 6 4

样例输出

11

题目信息
创意编程组 第十四届 省赛 中级 高级
-
正确率
0
评论
947
点击