#ABC175D. 移动棋子

移动棋子

移动棋子

题目描述

高桥君打算在由编号 1,2,⋯ ,N1, 2, \cdots, N 的 NN 个格子组成的棋盘上,用棋子进行游戏。格子 ii 上写有整数 CiC_i。此外,给定一个 1,2,⋯ ,N1, 2, \cdots, N 的排列 P1,P2,⋯ ,PNP_1, P_2, \cdots, P_N。

接下来,高桥君将任选一个格子放上一枚棋子,并移动棋子 11 次以上、KK 次以下任意次(只要在 11 到 KK 之间)。

  • 一次移动中,如果棋子当前在格子 ii (1≤i≤N)(1 \leq i \leq N),则把棋子移动到格子 PiP_i。此时,得分加上 CPiC_{P_i}。

请为高桥君求出游戏结束时得分可能的最大值。(游戏开始时的得分为 00。)

输入格式

输入按以下格式从标准输入给出:

NN KK
P1P_1 P2P_2 ⋯\cdots PNP_N
C1C_1 C2C_2 ⋯\cdots CNC_N

输出格式

输出游戏结束时得分可能的最大值。

样例

5 2
2 4 5 1 3
3 4 -10 -8 8
8

从任意格子开始、移动棋子 22 次以下的方法如下:

  • 开始时把棋子放在格子 11。移动 11 次到达格子 22,得分为 44。移动 22 次到达格子 44,得分为 4+(−8)=−44 + (-8) = -4。
  • 开始时把棋子放在格子 22。移动 11 次到达格子 44,得分为 −8-8。移动 22 次到达格子 11,得分为 −8+3=−5-8 + 3 = -5。
  • 开始时把棋子放在格子 33。移动 11 次到达格子 55,得分为 88。移动 22 次到达格子 33,得分为 8+(−10)=−28 + (-10) = -2。
  • 开始时把棋子放在格子 44。移动 11 次到达格子 11,得分为 33。移动 22 次到达格子 22,得分为 3+4=73 + 4 = 7。
  • 开始时把棋子放在格子 55。移动 11 次到达格子 33,得分为 −10-10。移动 22 次到达格子 55,得分为 −10+8=−2-10 + 8 = -2。

这些中的最大值是 88。

2 3
2 1
10 -7
13
3 3
3 1 2
-1000 -2000 -3000
-1000

必须至少移动 11 次棋子。

10 58
9 1 6 7 8 4 3 2 10 5
695279662 988782657 -119067776 382975538 -151885171 -177220596 -169777795 37619092 389386780 980092719
29507023469

答案的绝对值有时会非常大。

数据范围

  • 2≤N≤50002 \leq N \leq 5000
  • 1≤K≤1091 \leq K \leq 10^9
  • 1≤Pi≤N1 \leq P_i \leq N
  • Pi≠iP_i \neq i
  • P1,P2,⋯ ,PNP_1, P_2, \cdots, P_N 全部互不相同
  • −109≤Ci≤109-10^9 \leq C_i \leq 10^9
  • 输入均为整数
难度 普及+/提高-
通过率 —
尝试 0
通过 0
ID
1995
类型
传统题
Time Limit
3000ms
Memory Limit
1024MiB
上传者
标签