#4621. 在传球游戏中最大化函数值
在传球游戏中最大化函数值
题目描述
给你一个长度为 下标从 0 开始的整数数组 和一个整数 。
总共有 名玩家,玩家 编号 互不相同,且为 中的整数。这些玩家玩一个传球游戏, 表示编号为 的玩家会传球给编号为 的玩家。玩家可以传球给自己,也就是说 可能等于 。
你需要从 名玩家中选择一名玩家作为游戏开始时唯一手中有球的玩家,球会被传 恰好 次。
如果选择编号为 的玩家作为开始玩家,定义函数 表示从编号为 的玩家开始, 次传球内所有接触过球玩家的编号之 和 ,如果有玩家多次触球,则 累加多次 。换句话说, $f(x) = x + receiver[x] + receiver[receiver[x]] + ... + receiver^(k)[x]$ 。
你的任务时选择开始玩家 ,目的是 最大化 。
请你返回函数的 最大值 。
注意: 可能含有重复元素。
输入格式
第一行二个整数 和 ; 接下来的 个空格隔开的整数表示 数组的各元素的值,下标从 0 开始。
输出格式
一行一个整数表示答案。
示例 1:
3 4
2 0 1
6
传递次数 | 传球者编号 | 接球者编号 | x + 所有接球者编号 |
---|---|---|---|
2 | |||
1 | 2 | 1 | 3 |
2 | 1 | 0 | |
3 | 0 | 2 | 5 |
4 | 2 | 1 | 6 |
解释:上表展示了从编号为 x = 2 开始的游戏过程。 从表中可知,f(2) 等于 6 。 6 是能得到最大的函数值。
所以输出为 6 。
示例 2:
5 3
1 1 1 2 3
10
传递次数 | 传球者编号 | 接球者编号 | x + 所有接球者编号 |
---|---|---|---|
4 | |||
1 | 4 | 3 | 7 |
2 | 3 | 2 | 9 |
3 | 2 | 1 | 10 |
解释:上表展示了从编号为 x = 4 开始的游戏过程。 从表中可知,f(4) 等于 10 。 10 是能得到最大的函数值。
所以输出为 10 。
提示:
Source
相关
在以下作业中: