#iai30c4. 走走跳跳

走走跳跳

走走跳跳

题目描述

nn 个位置排成一排,第 ii 个位置都有一个分数 aia_i(分数可能是正数,也可能是负数)。小爱从 11 号位置出发,最终要走到 nn 号位置。当小爱在第 ii 个位置时,有两种选择:

  • 她可以直接走到下一个位置(也就是 i+1i+1 号位置);
  • 也可以选择跳到第 tit_i 号位置(保证 i<tii < t_i)。

小爱的得分就是一路上经过的所有位置的分数之和,请问应该如何安排行动,才能使获得的分数之和达到最大?

输入格式

第一行:一个整数 nn

第二行:nn 个整数,表示 a1,a2,,ana_1, a_2, \cdots, a_n

第三行:n1n-1 个整数,表示 t1,t2,,tn1t_1, t_2, \cdots, t_{n-1}

输出格式

单个整数:表示可能拿到的最高分数

数据范围

  • 对于 30%30\% 的数据,保证 1n501 \leq n \leq 50
  • 对于 60%60\% 的数据,保证 1n50001 \leq n \leq 5000
  • 对于 100%100\% 的数据,保证 1n100,0001 \leq n \leq 100,000
  • 107ai107-10^7 \leq a_i \leq 10^7
  • i<tini < t_i \leq n

样例输入 #1

3
4 -2 6
3 3

样例输出 #1

10

样例输入 #2

5
0 -2 3 0 0
4 5 5 5

样例输出 #2

1

知识点与难度

本题涉及的知识点从属于 GESP 6级,难度等级:⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤10 / 特殊: 全正分 / 特殊: 全负分
2 15 9~11 Hack: N=2 / Hack: 跳过负分 / Hack: 大负数溢出
3 30 12~20 中大规模 N≈1000~100000 压力
4 25 21~25 随机 N=1~100000 回归