华为校招机试 - 获取最多食物(20230412)

题目描述

主办方设计了一个获取食物的游戏。游戏的地图由N个方格组成,每个方格上至多2个传送门,通过传送门可将参与者传送至指定的其它方格。

同时,每个方格上标注了三个数字:       

  • 第一个数字 id:代表方格的编号,从0到N-1,每个方格各不相同
  • 第二个数字 parent-id:代表从编号为 parent-id 的方格可以通过传送门传送到当前方格( -1则表示没有任何方格可以通过传送门传送到此方格,这样的方格在地图中有且仅有一个 );
  • 第三个数字 value:取值在[100,100]的整数值,
  1. 正整数代表参与者得到相应数值单位的食物
  2. 负整数代表参与者失去相应数值单位的食物 (参与者可能存在临时持有食物为负数的情况)
  3. 0则代表无变化

此外,地图设计时保证了参与者不可能到达相同的方格两次,并且至少有一个方格的value是正整数。

游戏开始后,参与者任意选择一个方格作为出发点,当遇到下列情况之一退出游戏:

  1. 参与者当前所处的方格无传送门:
  2. 参与者在任意方格上丰动宣布退出游戏

请计算参与者退出游戏后,最多可以获得多少单位的食物?

输入描述

第一行:方块个数 N ( N ≤ 10000 )

接下来 N 行,每行三个整数id, parent-id, value

  • 0 ≤ id, parent-id < N
  • -100 ≤ value ≤ 100

特殊的 parent-id

猜你喜欢

转载自blog.csdn.net/qfc_128220/article/details/130309996