题目大意
题目描述总结
给定一个长度为 的数列 和一个定值 。两名玩家(铃仙和因幡帝)交替从数列中取数,取出的数会立刻从原数列中删除。规则如下:
-
铃仙先手,每次可以从当前数列中任选一个数。
-
因幡帝后手,每次必须选择当前数列头部的前 个数(即剩下数列的第 到第 个数)。若当前数列剩余元素不足 个,则因幡帝会将剩余的所有数全部取走。
-
两人交替选数,直到数列为空。
铃仙的目标是最大化自己所取出的所有数字之和。
假设铃仙始终采取最优策略,请对于所有的 ,分别独立求出铃仙所能获得的数字和的最大值。
输入格式
第一行包含一个整数 (),表示测试用例数量。
每个测试用例包含两行:
第一行是一个整数 (),表示数列长度。
第二行是 个正整数 (),表示给定的数列。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例输出一行,包含 个正整数。第 个整数表示当 时,铃仙能获得的最大数字和。
样例数据
输入样例:
1 | 3 |
输出样例:
1 | 2 |
样例解释
在样例 中,初始数列为 。
当 时,一种使得铃仙获得最大和的方案为:
-
铃仙先选取 ,删除该数,此时数列变为 ;
-
因幡帝必须选取头部的 个元素 ,此时数列变为 ;
-
铃仙再选取 ,此时数列变为 ;
-
因幡帝必须选取头部的 个元素 ,此时数列变为 ;
-
铃仙再选取 ,此时数列变为 ;
-
因幡帝必须选取头部的 个元素 ,此时数列为空,停止。
铃仙所选之数的和为 。可以证明,该方案铃仙所选之数的和最大。
当 时,一种使得铃仙获得最大和的方案为:
-
铃仙先选取 ,删除该数,此时数列变为 ;
-
因幡帝必须选取头部的 个元素 ,此时数列变为 ;
-
铃仙再选取 ,此时数列变为 ;
-
因幡帝必须选取头部的 个元素,但当前数列大小小于 ,全部取完,此时数列为空,停止。
铃仙所选之数的和为 。可以证明,该方案铃仙所选之数的和最大。
思路讲解
说实话,看完这道题目,我的感觉是不是特别困难。
AC代码
1 |