AT_tenka1_2016_qualA_b PackDrop
题目描述
# PackDrop
[问题链接](https://atcoder.jp/contests/tenka1-2016-quala/tasks/tenka1_2016_qualA_b)
山本同学发明了一种名为 PackDrop 的设备,它有 $0.01$ 的概率丢弃数据包,用于在通信环境不佳的网络中验证应用程序的运行。
山本同学需要在由 $N$ 台设备组成的网络中安装一些 PackDrop,以满足以下条件。并且,他希望使用的 PackDrop 的数量最少。
这个网络中的每个设备都有一个从 $0$ 到 $N-1$ 的编号。
除设备 $0$ 外,每个设备都有一个父设备,设备 $i$ 的父设备是设备 $P_i$。设备 $P_i$ 被称为设备 $i$ 的子设备。
直接具有父子关系的设备可以直接连接,或者通过串联几个 PackDrop 来连接。
当父设备和子设备之间有 $n$ 个 PackDrop 时,从父设备到子设备的数据包到达率为 $0.99^n$。换句话说,直接连接时,数据包到达率为 $1$。
设设备 $x$ 到设备 $y$ 的数据包到达率为 $p$,设备 $y$ 到设备 $z$ 的数据包到达率为 $q$,则设备 $x$ 到设备 $z$ 的数据包到达率为 $p × q$。
除了 PackDrop 丢弃数据包外,没有其他因素会影响数据包的到达率。
没有子设备的设备共有 $M$ 台,它们的编号为 $B_0, B_1, \ldots, B_{M-1}$。对于每个 $i$ ($0 \leq i \leq N-1$),当希望设备 $0$ 到设备 $B_i$ 的到达率为 $0.99^{C_i}$ 时,求出最少需要的 PackDrop 数量。
输入格式
输入的格式如下所示:
> $N\ M\ P_1 : P_{N-1}\ B_0\ C_0 : B_{M-1}\ C_{M-1}$
输出格式
输出最少的 PackDrop 数量。
说明/提示
### 约束条件
- $2 \leq N \leq 1000$
- $1 \leq M \leq N - 1$
- $0 \leq P_i \leq i - 1$
- $1 \leq B_i \leq N - 1$
- $1 \leq C_i \leq 100000$
- 如果 $i \neq j$,则 $B_i \neq B_j$。
- 存在 $i, j$ 使得 $P_i = B_j$。
- 整数 $k$ ($1 \leq k \leq N - 1$) 如果不在 $P_1, P_2, \ldots, P_{N-1}$ 中,则它一定在 $B_0, B_1, \ldots, B_{M-1}$ 中。
- $N, M, P_i, B_i, C_i$ 均为整数。