luogu#P8581. [CoE R5] X 细胞

    ID: 12567 远端评测题 1000~3000ms 256~320MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>数学图论贪心洛谷原创O2优化洛谷月赛

[CoE R5] X 细胞

题目描述

题意简述

有根树为一个有向图,该有向图有一个特殊的顶点,称之为,从根出发,存在唯一的有向路径到达图中的任意其他顶点。按照习惯,一般将有根树中的顶点称为结点子树为有根树 TT 的一个子图且该子图是一棵以 TT 中某个结点为根的有根树。在有根树中,如果有一条边从结点 ii 出发,到达结点 jj,则将结点 ii 称为结点 jj父结点,将结点 jj 称为结点 ii子结点。将有根树中不存在子结点的结点称为叶结点

给定有根树 TT,第 ii 个结点具有权值 aiZ+a_i \in \mathbb{Z^+}biZ+b_i \in \mathbb{Z^+}

TT'TT 的一棵子树,FiF_iTT 中所有以结点 ii 为根的子树的集合。

  • 定义 r(T)=a(T)b(T)r(T') = \frac {a(T')}{b(T')},其中 a(T)=jTaja(T') = \sum \limits_{j \in T'}{a_j}b(T)=jTbjb(T') = \sum \limits_{j \in T'}{b_j}

  • 定义 TiT_i 为一棵以结点 ii 为根的子树,TiT_i 满足 r(Ti)=minTFir(T)r(T_i) = \min \limits_{T' \in F_i}r(T') 且具有最多的结点数量。

  • 定义 S(T)S(T'):对于 TT 中的某个结点 jj,令其父结点为 ii,则 jS(T)j \in S(T') 当且仅当 iTi \in T'jTj \notin T'

给定一棵具有 nn 个结点的有根树 TT,令根结点为 ii,对其执行以下操作:

11)将根结点 ii 放入结点集合 QQ,即初始时置 Q{i}Q \leftarrow \{i\}

22)任取 QQ 中的一个元素,令其为 jj,确定 TjT_j,对于结点 kS(Tj)k \in S(T_j),置 akak+r(Tj)a_k \leftarrow a_k + \lceil r(T_j) \rceil

33)从集合 QQ 中删除元素 jj,并置 QQS(Tj)Q \leftarrow Q \cup S(T_j)

44)若集合 Q=Q = \varnothing ,结束操作,否则转步骤(22)。

每执行一次步骤(22)就会确定一棵 TT 的子树,假设在结束操作时一共执行了 mm 次步骤(22),令第 ii 次执行步骤(22)所确定的子树为 KiK_i,最小化以下 WW 值:

$$W = 1 \times \lceil r(K_1) \rceil + 2 \times \lceil r(K_2) \rceil + \cdots + m \times \lceil r(K_m) \rceil = \sum_{i = 1}^{m}i \times \lceil r(K_i) \rceil $$

Z+\mathbb{Z^+} 表示全体正整数,x\lceil x \rceil 表示不小于 xx 的最小整数。


原版题面

X\text{X} 细胞是来自于仙女座星系 Gamma\text{Gamma} 行星的一种古老生命形式。

初始时,只有 11X\text{X} 细胞,而 X\text{X} 细胞可以通过直接分裂来产生后代 X\text{X} 细胞。对于某个 X\text{X} 细胞 ii 来说,如果它产生了一个直接后代 X\text{X} 细胞 jj,则将细胞 ii 称为细胞 jj母细胞,将细胞 jj 称为 ii子细胞

注意,母细胞、子细胞的定义不具有传递性。假设细胞 ii 产生了一个直接后代细胞 jj,细胞 jj 又产生了一个直接后代细胞 kk,则将 jj 称为 ii 的子细胞,kk 称为 jj 的子细胞,但 kk 不是 ii 的子细胞。

每个 X\text{X} 细胞具有活力值 hxh_x 和体积 vxv_x,为了研究的方便,人们为 X\text{X} 细胞定义了变异指数

dx=hxvxd_x = \frac{h_x}{v_x}

该指数用于衡量 X\text{X} 细胞对环境的适应性,变异指数越低,细胞存活的概率越高。

人们发现,当 X\text{X} 细胞受到特定的外界刺激后,它会激活并开始一种被人们称为同化的过程来转变为一个 Z\text{Z} 细胞。在同化过程开始前,激活的 X\text{X} 细胞会改变自身状态成为一个 Y\text{Y} 细胞,Y\text{Y} 细胞会不断吸收它的子细胞并进行融合,使得该子细胞成为 Y\text{Y} 细胞的一部分。

在融合后,Y\text{Y} 细胞的活力值和体积为融合前的细胞活力值和体积的加和。也就是说,假设有 nn 个细胞经过融合成为一个 Y\text{Y} 细胞,这 nn 个细胞的活力值和体积分别为 h1h_1h2h_2,…,hnh_nv1v_1v2v_2,…,vnv_n,则融合完成后,该 Y\text{Y} 细胞的活力值 hy=i=1nhih_y = \sum_{i=1}^{n}h_i,体积 vy=i=1nviv_y = \sum_{i=1}^{n}v_i,变异指数 dy=hyvyd_y = \frac{h_y}{v_y}

在同化过程中,Y\text{Y} 细胞会遵循以下原则:

  • 如果某个子细胞 jj 的母细胞 ii 尚未被同化,则该子细胞 jj 不会被同化。
  • 能够使得 Y\text{Y} 细胞变异指数尽可能地小且同化尽可能多的细胞。

Y\text{Y} 细胞无法再同化更多的细胞时,它会停止同化过程,转变为一个 Z\text{Z} 细胞并释放信息素(状态转变前后,细胞的活力值和体积不变)。该信息素会产生以下作用:令生成的 Z\text{Z} 细胞的变异指数为 dz=hzvzd_z = \frac{h_z}{v_z},如果某个尚未被同化的子细胞 jj 的母细胞 ii 被该 Z\text{Z} 细胞同化,则该子细胞 jj 的活力值 hjh_j 增加 dz\lceil d_z \rceilx\lceil x \rceil 表示不小于 xx 的最小整数)。

需要注意,在同化过程结束时,Y\text{Y} 细胞的变异指数要求尽可能地小,但在同化过程中,Y\text{Y} 细胞的变异指数并不要求时刻保持最小(参见输入 #1\#1)。

研究人员需要通过一种专用设备来产生激活 X\text{X} 细胞的特定外界刺激,每次使用该设备都会消耗一定数量的激活剂,消耗的激活剂数量 ctc_t 使用以下公式进行计算:

ct=t×dzc_t = t \times \lceil d_z \rceil

其中 tt 表示使用该设备的次数序号(初始时从 11 开始计数),dzd_z 表示该次激活最终生成的 Z\text{Z} 细胞的变异指数。

由于母细胞会分泌信息素使得子细胞无法被激活,只能选择不存在母细胞或者母细胞已经被同化的 X\text{X} 细胞作为特定外界刺激的对象,以使其激活并开始同化过程。

给定所有 X\text{X} 细胞之间的相互关系及其活力值和体积,鉴于激活剂非常难以制造,现在需要你制定一个最优的 X\text{X} 细胞激活顺序方案,使得所有的 X\text{X} 细胞均转变为 Z\text{Z} 细胞且消耗的激活剂数量最少。

你只需要输出该最少值即可。

输入格式

输入的第一行是一个整数 nn,表示 X\text{X} 细胞的数量。

接下来的一行,包含 n1n - 1 个整数,依次表示编号为 2n2 \sim nX\text{X} 细胞的母细胞的编号。

接下来的一行,包含 nn 个整数,依次表示编号为 iiX\text{X} 细胞的活力值 hih_i

再接下来的一行,包含 nn 个整数,依次表示编号为 iiX\text{X} 细胞的体积 viv_i

初始的 X\text{X} 细胞的编号为 11


题意简述所对应的输入格式

输入的第一行是一个整数 nn,表示有根树结点的数量。

接下来的一行,包含 n1n - 1 个整数,依次表示编号为 2n2 \sim n 的结点的父结点的编号。

接下来的一行,包含 nn 个整数,依次表示编号为 ii 的结点的权值 aia_i

再接下来的一行,包含 nn 个整数,依次表示编号为 ii 的结点的权值 bib_i

根结点的编号为 11

输出格式

输出一个整数,表示使得所有 X\text{X} 细胞均转变为 Z\text{Z} 细胞所需消耗的激活剂数量的最少值。


题意简述所对应的输出格式

输出一个整数,表示 WW 的最小值。

3
1 2
5 7 12
1 1 10
2
3
1 1
2 2 12
2 3 4
9
5
1 2 2 1
1 7 10 20 9
1 1 1 1 1
223
12
1 2 3 1 5 6 7 1 9 10 11
4 10 2 1 50 1 20 9 40 2 15 10
1 1 1 1 1 1 1 1 1 1 1 1
124

提示

样例说明

输入 #1\#1

  • 激活细胞 11,同化细胞 232、3,产生的 Z\text{Z} 细胞活力值 hz=24h_z = 24,体积 vz=12v_z = 12,变异指数 dz=hzvz=2412=2d_z = \frac {h_z}{v_z} = \frac {24}{12} = 2

  • 11 次激活总共最少需要消耗的激活剂数量为 $c_1 = t \times \lceil d_z \rceil = 1 \times \lceil \frac {24}{12} \rceil = 1 \times 2 = 2$。

  • 初始时 Y\text{Y} 细胞的变异指数为 55,当同化细胞 22 后,变异指数为 66,当同化细胞 33 后,变异指数变为 22。由此可见,在同化过程中,Y\text{Y} 细胞的变异指数并不是时刻都保持最小,只需在最后停止同化转变为 Z\text{Z} 细胞时为最小值即可。

输入 #2\#2

  • 激活细胞 11,同化细胞 22,产生的 Z\text{Z} 细胞活力值 hz=2+2=4h_z = 2 + 2 = 4,体积 vz=2+3=5v_z = 2 + 3 = 5,变异指数 dz=hzvz=45d_z = \frac {h_z}{v_z} = \frac {4}{5},该次激活消耗的激活剂数量 $c_1 = t \times \lceil d_z \rceil= 1 \times \lceil \frac {4}{5} \rceil = 1 \times 1 = 1$,该 Z\text{Z} 细胞释放信息素使得细胞 33 的活力值增加 11,则细胞 33 的活力值变为 1313

  • 激活细胞 33,未同化其他细胞,产生的 Z\text{Z} 细胞活力值 hz=13h_z = 13,体积 vz=4v_z = 4,变异指数 dz=hzvz=134d_z = \frac {h_z}{v_z} = \frac {13}{4},该次激活消耗的激活剂数量 $c_2 = t \times \lceil d_z \rceil = 2 \times \lceil \frac {13}{4} \rceil= 2 \times 4 = 8$。

  • 22 次激活总共最少需要消耗的激活剂数量为 c1+c2=1+8=9c_1 + c_2 = 1 + 8 = 9

输入 #3\#3

  • 激活细胞 11,未同化其他细胞,产生的 Z\text{Z} 细胞活力值 hz=1h_z = 1,体积 vz=1v_z = 1,变异指数 dz=hzvz=11=1d_z = \frac {h_z}{v_z} = \frac {1}{1} = 1。总共消耗的激活剂数量 $c_1 = t \times \lceil d_z \rceil = 1 \times \lceil 1 \rceil = 1$。Z\text{Z} 细胞释放信息素,使得细胞 2255 的活力值各增加 11,细胞 2255 的活力值当前为 881010

  • 激活细胞 22,未同化其他细胞,产生的 Z\text{Z} 细胞活力值 hz=8h_z = 8,体积 vz=1v_z = 1,变异指数 dz=hzvz=81=8d_z = \frac {h_z}{v_z} = \frac {8}{1} = 8。总共消耗的激活剂数量 $c_2 = t \times \lceil d_z \rceil = 2 \times \lceil 8 \rceil = 16$。Z\text{Z} 细胞释放信息素,使得细胞 3344 的活力值各增加 88,细胞 3344 的活力值当前为 18182828

  • 激活细胞 44,未同化其他细胞,产生的 Z\text{Z} 细胞活力值 hz=28h_z = 28,体积 vz=1v_z = 1,变异指数 dz=hzvz=281=28d_z = \frac {h_z}{v_z} = \frac {28}{1} = 28。总共消耗的激活剂数量 $c_3 = t \times \lceil d_z \rceil = 3 \times \lceil 28 \rceil = 84$。

  • 激活细胞 33,未同化其他细胞,产生的 Z\text{Z} 细胞活力值 hz=18h_z = 18,体积 vz=1v_z = 1,变异指数 dz=hzvz=181=18d_z = \frac {h_z}{v_z} = \frac {18}{1} = 18。总共消耗的激活剂数量 $c_4 = t \times \lceil d_z \rceil = 4 \times \lceil 18 \rceil = 72$。

  • 激活细胞 55,未同化其他细胞,产生的 Z\text{Z} 细胞活力值 hz=10h_z = 10,体积 vz=1v_z = 1,变异指数 dz=hzvz=101=10d_z = \frac {h_z}{v_z} = \frac {10}{1} = 10。总共消耗的激活剂数量 $c_5 = t \times \lceil d_z \rceil = 5 \times \lceil 10 \rceil = 50$。

  • 55 次激活总共最少需要消耗的激活剂数量为 $c_1 + c_2 + c_3 + c_4 + c_5 = 1 + 16 + 84 + 72 + 50 = 223$。

输入 #4\#4

  • 激活细胞 11,未同化其他细胞,产生的 Z\text{Z} 细胞变异指数 dz=hzvz=41d_z = \frac {h_z}{v_z} = \frac {4}{1},释放信息素使得细胞 2592、5、9 的活力值增加 44,消耗激活剂 $c_1 = 1 \times \lceil \frac {4}{1} \rceil = 1 \times 4 = 4$。

  • 激活细胞 55,同化细胞 6786、7、8,产生的 Z\text{Z} 细胞变异指数 dz=hzvz=844d_z = \frac {h_z}{v_z} = \frac {84}{4},消耗激活剂 $c_2 = 2 \times \lceil \frac {84}{4} \rceil = 2 \times 21 = 42$。

  • 激活细胞 99,同化细胞 10111210、11、12,产生的 Z\text{Z} 细胞变异指数 dz=hzvz=714d_z = \frac {h_z}{v_z} = \frac {71}{4},消耗激活剂 $c_3 = 3 \times \lceil \frac {71}{4} \rceil = 3 \times 18 = 54$。

  • 激活细胞 22,同化细胞 343、4,产生的 Z\text{Z} 细胞变异指数 dz=hzvz=173d_z = \frac {h_z}{v_z} = \frac {17}{3},消耗激活剂 $c_4 = 4 \times \lceil \frac {17}{3} \rceil = 4 \times 6 = 24$。

  • 44 次激活总共最少需要消耗的激活剂数量为 c1+c2+c3+c4=4+42+54+24=124c_1 + c_2 + c_3 + c_4 = 4 + 42 + 54 + 24 = 124


数据范围

本题采用捆绑测试。某些子任务的输入文件较大,请使用合适的输入读取方式。

子任务 分值 nn \leq 特殊性质 时间限制 内存限制 子任务依赖
11 1010 2020 1 s1 \text{ s} 256 MB256 \text{ MB}
22 3030 10310^3 11
33 1010 10510^5 121 \sim 2
44 10610^6 A\text{A} 3 s3 \text{ s}
55 2020 B\text{B} 1 s1 \text{ s} 320 MB320 \text{ MB}
66 1010 C\text{C} 256 MB256 \text{ MB}
77 3 s3 \text{ s} 320 MB320 \text{ MB} 161 \sim 6
  • 特殊性质 A\text{A}:即给定的有根树所对应的图是星形图。 2in\forall \ 2 \leq i \leq nfi=1f_i = 1
  • 特殊性质 B\text{B}:给定的有根树所对应的图是有向链。 2in\forall \ 2 \leq i \leq nfi=i1f_i = i - 1
  • 特殊性质 C\text{C}:数据随机生成。 2in\forall \ 2 \leq i \leq nfif_i[1,i1][1, i - 1] 中随机选取的整数。hi,vih_i, v_i[1,106][1, 10^6] 中随机选取的整数。

对于 100%100 \% 的数据,1n1061 \leq n \leq 10^61hi1061 \leq h_i \leq 10^61vi1061 \leq v_i \leq 10^6,答案不超过 101810^{18}