CF1099F.Cookies

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Mitya 和 Vasya 正在玩一个有趣的游戏。他们有一棵有根树,这棵树有 nn 个顶点,顶点编号从 11 到 nn。根节点的编号为 11。对于每个 i≥2i \ge 2 的顶点 ii,它有一个父节点 pip_i,顶点 ii 被称为顶点 pip_i 的子节点。

树上的每个顶点都有一些饼干:在顶点 ii 上有 xix_i 块饼干。在顶点 ii 吃一块饼干需要恰好 tit_i 的时间。树上还有一个芯片,最初位于树根。将芯片沿着连接顶点 ii 与其父节点的边移动,需要花费 lil_i 的时间。

Mitya 和 Vasya 轮流进行游戏,Mitya 先手。

  • Mitya 可以将芯片从当前位置移动到它的某个子节点。
  • Vasya 可以从芯片当前位置到其某个子节点的边中,移除一条边。Vasya 也可以选择跳过这回合。

Mitya 可以在自己的任意回合选择停止游戏。一旦他停止游戏,他会将芯片沿着路径返回到根节点,并在沿途的顶点吃掉一些饼干。Mitya 可以自行决定在每个经过的顶点吃多少块饼干。下行、上行和吃饼干所花费的总时间不能超过 TT。请注意,游戏结束时芯片必须回到树根:Mitya 不能将芯片留在其他顶点,即使他已经吃够了饼干——他必须将芯片带回根节点(每次从顶点 vv 移动到其父节点都需要 lvl_v 的时间)。

无论 Vasya 如何操作,请你求出 Mitya 最多能吃到多少块饼干。

输入格式

第一行包含两个整数 nn 和 TT,分别表示树的顶点数和 Mitya 完成任务的总时间(2≤n≤1052\le n \le 10^5,1≤T≤10181\le T\le10^{18})。

第二行包含 nn 个整数 x1,x2,…,xnx_1, x_2, \ldots, x_n,表示每个顶点上的饼干数量(1≤xi≤1061\le x_i\le10^6)。第三行包含 nn 个整数 t1,t2,…,tnt_1, t_2, \ldots, t_n,表示在每个顶点吃一块饼干所需的时间(1≤ti≤1061\le t_i\le10^6)。

接下来的 n−1n-1 行描述这棵树。对于每个 ii 从 22 到 nn,第 ii 行包含两个整数 pip_i 和 lil_i,其中 pip_i 表示顶点 ii 的父节点,lil_i 表示将芯片从顶点 ii 移动到其父节点所需的时间(1≤pi<i1\le p_i < i,0≤li≤1090\le l_i \le 10^9)。

输出格式

输出一个整数,表示无论 Vasya 如何操作,Mitya 最多能吃到多少块饼干。

输入输出样例

  • 输入#1

    5 26
    1 5 1 7 7
    1 3 2 2 2
    1 1
    1 1
    2 0
    2 0
    

    输出#1

    11
    
  • 输入#2

    3 179
    2 2 1
    6 6 6
    1 3
    2 3
    

    输出#2

    4
    

说明/提示

在第一个样例测试中,Mitya 可以先将芯片移动到顶点 22。无论 Vasya 如何操作,Mitya 至少都能吃到 1111 块饼干。下面是详细的操作过程:

  1. Mitya 将芯片移动到顶点 22。
  2. Vasya 移除了与顶点 44 相连的边。
  3. Mitya 将芯片移动到顶点 55。
  4. 由于顶点 55 没有子节点,Vasya 不移除任何边。
  5. Mitya 停止游戏,并将芯片带回根节点,在沿途吃掉饼干(在顶点 55 吃 77 块,在顶点 22 吃 33 块,在顶点 11 吃 11 块)。

Mitya 下行花费 1+01+0 时间,上行花费 0+10+1 时间,在顶点 55 吃 77 块饼干花费 7×27\times 2 时间,在顶点 22 吃 33 块饼干花费 3×33\times 3 时间,在顶点 11 吃 11 块饼干花费 1×11\times 1 时间。总时间为 1+0+0+1+7×2+3×3+1×1=261+0+0+1+7\times 2+3\times 3+1\times 1=26。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页