膜方俱乐部 (travel.cpp/c/pas)
【问题描述】
fateice来到了膜方俱乐部旅行。膜方俱乐部有N个分部,每个分部均有且仅有一个虫洞,但是这虫洞只能通往一个分部。每个分部有一个orzFang价值,第 i 个分部的orzFang价值为A[i]。
现在他想知道,从i个分部出发,并只通过虫洞前往下一个分部,orzFang价值之和最多是多少(到达一个分部多次只计算 1 次orzFang价值)。
【输入格式】
第一行为一个正整数 N。
第二行有N个非负整数A[i],表示了每个分部的orzFang价值。
第三行有N个正整数F[i],表示通过第i个分部的虫洞所到达的分部为 F[i],可能出现 F[i]=i的情况。
【输出格式】
包括 N 行,第 i 行包含一个非负整数,表示从第 i 个分部出发,orzFang 价值之和的最大值为多少。
travel.in
8 12
5 4 3 2 1 1 1 1
2 3 1 1 2 7 6 8
travel.out
12
12
14
13
2
2
1
【输入输出样例】
【数据规模】
对于20%的数据,N≤10。
对于40%的数据,N≤1000。
对于100%的数据,N≤200000,A[i]≤10000。
信息
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 3
- 已通过
- 2
- 通过率
- 67%
- 被复制
- 1
- 上传者