P1060云止聆佳响echo

时间限制 2000 ms内存限制 512 MiB通过率 —
显示算法标签树形 DP · 线段树 · 离散化

【题目背景】

龙韧于刚,龙吟激荡,云止聆佳响。

【题目描述】

群山的主脉与支脉层层伸展,远望如同一条卧于云间的龙脊。山脊上共有 nn 座听音台,其中 11 号听音台位于山口。其余每座听音台都由一条山路与更靠近山口的听音台相连,这些山路使任意两座听音台之间都能互相到达。也就是说,它们构成一棵以 11 号听音台为根的树。

uu 座听音台封存着一声音高为 aua_u龙吟。将这座听音台唤醒时,它能够为群山中的声音增添 wuw_u吟响值

为了让沉寂的龙吟重新贯穿群山,你需要沿着一条从山口向龙脊深处延伸的道路,依次唤醒若干座听音台 p1,p2,,psp_1,p_2,\ldots,p_s。对于每个 1i<s1\leq i<s,从山口前往 pi+1p_{i+1} 时必须经过 pip_i。换言之,pip_ipi+1p_{i+1} 的祖先。被唤醒的听音台不必在山路上直接相邻,但必须依次位于同一条道路上。

依次唤醒的听音台共同奏成一段龙吟。为了使每一声音都能清晰传向云间,要求龙吟中任意相邻两座听音台的音高不同。

对于一段龙吟中相邻的两座听音台:

  • api<api+1a_{p_i}<a_{p_{i+1}},称此处的龙吟正在上扬。
  • api>api+1a_{p_i}>a_{p_{i+1}},称此处的龙吟正在低回。

当连续两处的龙吟一处上扬、另一处低回时,龙吟会在它们之间发生一次激荡。也就是说,对于 2i<s2\leq i<s,当

(apiapi1)(api+1api)<0(a_{p_i}-a_{p_{i-1}})(a_{p_{i+1}}-a_{p_i})<0

时,龙吟pip_i 处发生一次激荡

只唤醒一座听音台也能奏成一段合法的龙吟,此时不会发生激荡

一段龙吟吟响值为其中所有听音台贡献的吟响值之和。你需要在发生激荡的次数不超过 kk 的所有非空龙吟中,求出吟响值的最大值。

【输入格式】

从文件 echo.in\textbf{\textit{echo.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个整数 c,Tc,T,分别表示测试点编号与测试数据组数。c=0c=0 表示该测试点为样例。

接下来依次输入每组测试数据。对于每组测试数据:

第一行包含两个整数 n,kn,k,分别表示听音台的数量与允许发生激荡的最大次数。

第二行包含 n1n-1 个整数 p2,p3,,pnp_2,p_3,\ldots,p_n。对于每个 2un2\leq u\leq npup_u 表示从听音台 uu 前往山口时经过的第一座听音台。

第三行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示每座听音台记录的音高。

第四行包含 nn 个正整数 w1,w2,,wnw_1,w_2,\ldots,w_n,表示每座听音台贡献的吟响值

【输出格式】

输出到文件 echo.out\textbf{\textit{echo.out}} 中。

对于每组测试数据,输出一行一个整数,表示满足要求的龙吟的最大吟响值

【样例 1 输入】

0 26 11 1 2 2 34 2 7 6 1 53 5 4 6 7 85 01 2 3 43 1 4 2 52 8 4 7 3

【样例 1 输出】

1518

【说明/提示】

【样例 1 解释】

对于第一组测试数据,可以依次唤醒听音台 1,2,51,2,5。对应的音高依次为 4,2,14,2,1龙吟始终低回,没有发生激荡,得到的吟响值3+5+7=153+5+7=15

也可以依次唤醒听音台 1,3,61,3,6。对应的音高依次为 4,7,54,7,5龙吟发生一次激荡,得到的吟响值3+4+8=153+4+8=15。可以证明不存在吟响值更大的合法龙吟

对于第二组测试数据,不允许发生激荡。依次唤醒听音台 2,4,52,4,5 时,音高依次为 1,2,51,2,5,得到的吟响值8+7+3=188+7+3=18,这是能够得到的最大值。

【样例 2】

见选手目录下的 echo/echo2.in\textbf{\textit{echo/echo2.in}}echo/echo2.ans\textbf{\textit{echo/echo2.ans}}

该组样例符合测试点 131\sim 3 的数据范围。

【样例 3】

见选手目录下的 echo/echo3.in\textbf{\textit{echo/echo3.in}}echo/echo3.ans\textbf{\textit{echo/echo3.ans}}

该组样例符合测试点 474\sim 7 的数据范围。

【样例 4】

见选手目录下的 echo/echo4.in\textbf{\textit{echo/echo4.in}}echo/echo4.ans\textbf{\textit{echo/echo4.ans}}

该组样例符合测试点 8118\sim 11 的数据范围。

【样例 5】

见选手目录下的 echo/echo5.in\textbf{\textit{echo/echo5.in}}echo/echo5.ans\textbf{\textit{echo/echo5.ans}}

该组样例符合测试点 121512\sim 15 的数据范围。

【样例 6】

见选手目录下的 echo/echo6.in\textbf{\textit{echo/echo6.in}}echo/echo6.ans\textbf{\textit{echo/echo6.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T201\leq T\leq 201n2×1051\leq n\leq 2\times 10^50k80\leq k\leq 81au,wu1091\leq a_u,w_u\leq 10^9。对于同一个测试点,保证 n2×105\sum n\leq 2\times 10^5

测试点编号nnkk特殊性质
131\sim 320\leq 208\leq 8
474\sim 72×103\leq 2\times 10^38\leq 8
8118\sim 112×105\leq 2\times 10^5=0=0B
121512\sim 152×105\leq 2\times 10^58\leq 8A
162016\sim 202×105\leq 2\times 10^58\leq 8

特殊性质 A:所有听音台构成一条以 11 号听音台为一端的链。

特殊性质 B:k=0k=0

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解