CF1059E.Split the Tree

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given a rooted tree on nn vertices, its root is the vertex number 11. The ii-th vertex contains a number wiw_i. Split it into the minimum possible number of vertical paths in such a way that each path contains no more than LL vertices and the sum of integers wiw_i on each path does not exceed SS. Each vertex should belong to exactly one path.

A vertical path is a sequence of vertices v1,v2,…,vkv_1, v_2, \ldots, v_k where viv_i (i≥2i \ge 2) is the parent of vi−1v_{i - 1}.

给你一棵包含 nn 个顶点的有根树,其根节点为编号 11 的顶点。第 ii 个顶点上有一个数值 wiw_i。请将这棵树划分成尽可能少的若干条竖直路径(vertical paths),使得每条路径包含的顶点数不超过 LL,且每条路径上所有顶点的数值 wiw_i 之和不超过 SS。每个顶点必须且仅属于一条路径。

一条竖直路径是指一个顶点序列 v1,v2,…,vkv_1, v_2, \ldots, v_k,其中对任意 i≥2i \ge 2,viv_i 是 vi−1v_{i - 1} 的父节点。

输入格式

The first line contains three integers nn, LL, SS (1≤n≤1051 \le n \le 10^5, 1≤L≤1051 \le L \le 10^5, 1≤S≤10181 \le S \le 10^{18}) — the number of vertices, the maximum number of vertices in one path and the maximum sum in one path.

The second line contains nn integers w1,w2,…,wnw_1, w_2, \ldots, w_n (1≤wi≤1091 \le w_i \le 10^9) — the numbers in the vertices of the tree.

The third line contains n−1n - 1 integers p2,…,pnp_2, \ldots, p_n (1≤pi<i1 \le p_i \lt i), where pip_i is the parent of the ii-th vertex in the tree.

第一行包含三个整数 nn、LL、SS(1≤n≤1051 \le n \le 10^5,1≤L≤1051 \le L \le 10^5,1≤S≤10181 \le S \le 10^{18})—— 分别表示树的顶点数、单条路径中顶点的最大数量以及单条路径中顶点权值和的最大值。

第二行包含 nn 个整数 w1,w2,…,wnw_1, w_2, \ldots, w_n(1≤wi≤1091 \le w_i \le 10^9)—— 表示树中各顶点上的数值。

第三行包含 n−1n - 1 个整数 p2,…,pnp_2, \ldots, p_n(1≤pi<i1 \le p_i \lt i),其中 pip_i 表示树中第 ii 个顶点的父节点。

输出格式

Output one number — the minimum number of vertical paths. If it is impossible to split the tree, output −1-1.

输出一个数字——垂直路径的最少数量。如果无法将树分割,输出 −1-1。

输入输出样例

  • 输入#1

    3 1 3
    1 2 3
    1 1

    输出#1

    3
  • 输入#2

    3 3 6
    1 2 3
    1 1

    输出#2

    2
  • 输入#3

    1 1 10000
    10001

    输出#3

    -1

说明/提示

In the first sample the tree is split into 1, 2, 3{1},\ {2},\ {3}.

In the second sample the tree is split into 1, 2, 3{1,\ 2},\ {3} or 1, 3, 2{1,\ 3},\ {2}.

In the third sample it is impossible to split the tree.

在第一个样例中,树被分割为 {1}, {2}, {3}\{1\},\ \{2\},\ \{3\}。

在第二个样例中,树被分割为 {1, 2}, {3}\{1,\ 2\},\ \{3\} 或 {1, 3}, {2}\{1,\ 3\},\ \{2\}。

在第三个样例中,无法分割该树。

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

首页