#P624. 自给自足的树

自给自足的树

题目描述

给定一棵树,每个点上有权值 aia_i,请将这棵树分解为尽量多的连通区域,使得每个区域的权值之和均不小于 00。

输入格式

  • 第一行:单个整数表示 nn;
  • 第二行:nn 个整数表示 a1,a2,…,ana_1,a_2,\dots,a_n
  • 第三行:n−1n-1 个整数 p2,p3,…,pnp_2,p_3,\dots,p_n,表示第 ii 个点的父亲为 pip_i,保证 pi<ip_i<i。
  • 保证 a1+a2+⋯+an≥0a_1+a_2+\cdots+a_n\geq 0。

输出格式

  • 单个整数:表示最多可以断开多少条边,断开这些边之后,每个区域的权值之和均大于等于 00。
5
3 4 2 4 2
1 1 3 1
4
5
3 -4 2 4 2
1 1 3 1
2

数据范围

  • 对于 30%30\% 的数据,1≤n≤201\leq n\leq 20;
  • 对于 60%60\% 的数据,1≤n≤3001\leq n\leq 300;
  • 对于 100%100\% 的数据,1≤n≤20001\leq n\leq 2000;
  • −10000≤ai≤10000-10000\leq a_i\leq 10000。