A5125 | 打工
时间限制4s
内存限制1024MB
通过 / 提交0/0
题目描述
$Alice$ 学校附近的地图可以看作一棵有 $n$ 个结点的树,通过树的每条边需要消耗 $1$ 单位时间。$Alice$ 的学校位于树的根结点处,编号为 $1$。树的一些结点是打工地点,共有 $m$ 个。在每个打工地点,$Alice$ 可以打工 $w$ 单位时间,获得 $v$ 的报酬,每个打工地点只能打工一次。请帮助 $Alice$ 算一算,如果她从学校出发,最终回到学校,在 $W$ 单位时间内最多能赚多少钱。
输入格式
第一行包含三个正整数 $n$, $m$ 和 $W$ ,其含义见题目描述。
用例的第二行包含 $n-1$ 个正整数 $a_2, a_3, \ldots, a_n$ ,其中 $a_i$ 表示节点 $i$ 的父节点是 $a_i$。
用例的接下来 $m$ 行,每行包含三个正整数 $u_j$, $w_j$ 和 $v_j$ ,表示第 $j$ 个打工地点在结点 $u_j$,耗时 $w_j$,报酬 $v_j$。数据保证,所有打工地点的结点编号互不相同。
用例的第二行包含 $n-1$ 个正整数 $a_2, a_3, \ldots, a_n$ ,其中 $a_i$ 表示节点 $i$ 的父节点是 $a_i$。
用例的接下来 $m$ 行,每行包含三个正整数 $u_j$, $w_j$ 和 $v_j$ ,表示第 $j$ 个打工地点在结点 $u_j$,耗时 $w_j$,报酬 $v_j$。数据保证,所有打工地点的结点编号互不相同。
输出格式
对于每个测试用例,输出的唯一一行包含一个整数,表示 Alice 最多能赚多少钱。
输入输出样例
输入 #1
7 3 10 1 1 2 2 3 3 4 1 1 6 1 2 7 1 3
输出 #1
5
输入 #2
7 3 7 1 1 2 2 3 3 4 1 1 6 1 2 7 1 3
输出 #2
3
数据范围
- $1\le n\le 5 \times 10^5 , 1\le m\le min(10^3, n), 1\le W\le 10^3$
- $1\le a_i\lt i, 1\le i\le n$
- $1\le u_j\le n, 1\le w_j\le 10^3, 1\le v_j\le 10^3$, $1\le j\le m$
- $1\le n\le 5 \times 10^5 , 1\le m\le min(10^3, n), 1\le W\le 10^3$
- $1\le a_i\lt i, 1\le i\le n$
- $1\le u_j\le n, 1\le w_j\le 10^3, 1\le v_j\le 10^3$, $1\le j\le m$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?