CF2156E.Best Time to Buy and Sell Stock
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
一个长度为 m 的数组 b(其中 m≥2)的美丽值定义为所有下标对 i 和 j 满足 1≤i<j≤m 时的最大值 bj−bi。更正式地,其等于 1≤i<j≤mmax(bj−bi)。注意,如果该数组严格递减,美丽值可能为负数。
Hao 和 Alex 在一个长度为 n 的数组 a 上轮流进行游戏。初始时,数组中所有元素都是未锁定的。两人轮流行动,由 Hao 先手。
- Hao 的回合,他选择一个未锁定的 a 中的元素并将其移除。
- Alex 的回合,他选择一个未锁定的 a 中的元素并将其锁定(之后不能再被移除)。
当所有元素都被锁定或移除后,游戏结束。可以证明游戏恰好持续 n 个回合,最终数组中会恰好剩下 ⌊2n⌋ 个被锁定的元素。
Hao 希望最终锁定数组的美丽值尽可能小,而 Alex 希望它尽可能大。求当两人都采取最优策略时,最终锁定的元素数组的美丽值。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例组数。
每组测试用例的第一行包含一个整数 n(4≤n≤105),表示数组 a 的大小。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),表示数组 a 的元素。
保证所有测试用例中 n 的总和不超过 105。
输出格式
对于每个测试用例,输出一个整数,表示当两人均采取最优策略时最终锁定数组的美丽值。
输入输出样例
输入#1
6 5 5 1 2 3 4 4 3 1 2 1 10 7 1 3 5 8 2 8 3 5 1 6 1 1 4 5 1 4 9 9 9 8 2 4 4 3 5 3 4 1000000000 1 2 3
输出#1
1 -2 5 3 1 -999999998
说明/提示
在第一个测试用例中,游戏可能如下进行。加粗的元素表示已被 Alex 锁定:
- 第 1 回合(Hao):移除元素 1(在第 2 位),剩下 [5,2,3,4]。
- 第 2 回合(Alex):锁定元素 3(在第 3 位),剩下 [5,2,3,4]。
- 第 3 回合(Hao):移除元素 2(在第 2 位),剩下 [5,3,4]。
- 第 4 回合(Alex):锁定元素 4(在第 3 位),剩下 [5,3,4]。
- 第 5 回合(Hao):移除元素 5(在第 1 位),剩下 [3,4]。
最终锁定数组 b=[3,4] 的美丽值等于 b2−b1=4−3=1。
在第二个测试用例中,答案可能为负数:
- 第 1 回合(Hao):移除元素 2(在第 3 位),剩下 [3,1,1]。
- 第 2 回合(Alex):锁定元素 1(在第 2 位),剩下 [3,1,1]。
- 第 3 回合(Hao):移除元素 1(在第 3 位),剩下 [3,1]。
- 第 4 回合(Alex):锁定元素 3(在第 1 位),剩下 [3,1]。
最后锁定数组 b=[3,1] 的美丽值为 b2−b1=1−3=−2。
在第三个测试用例中,假设两人均采取最优操作,最终锁定的数组可能是 b=[3,5,8,5,1]。其美丽值,即所有下标满足 1≤i<j≤5 时 bj−bi 的最大值,为 b3−b1=8−3=5。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?