QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 256 MB Points totaux : 100 Hackable ✓

#13280. 算术练习

Statistiques

Oleg 和 Dasha 参加了一场团队比赛,但不幸的是,他们没能解决任何问题。Oleg 立即意识到他们的团队训练不足。于是,他们的共同好友建议进行一项有趣的练习。这个练习非常简单,要解决它,他们只需要了解整数的加减法规则。

给定一个长度为 $n$ 的数组 $a$,初始时所有元素均为零。同时给定 $m$ 个数 $x_1, x_2, \dots, x_m$。对于每个 $i$(从 $1$ 到 $m$),你需要选择一个下标 $j_i$,并执行操作 $a_{j_i} = x_i - a_{j_i}$。

请帮助 Oleg 和 Dasha 确定,如果做出最优选择,操作全部完成后数组 $a$ 的元素之和最大可能为多少。

输入格式

每个测试点包含多组数据。第一行包含一个整数 $t$ ($1 \le t \le 10\,000$),表示数据组数。接下来是各组数据的描述。

每组数据的第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 300\,000$),分别表示数组 $a$ 的长度和数值 $x_i$ 的个数。

每组数据的第二行包含 $m$ 个整数 $x_1, x_2, \dots, x_m$ ($-10^9 \le x_i \le 10^9$),表示这些数值。

令 $N$ 为所有数据组中 $n$ 的总和,$M$ 为所有数据组中 $m$ 的总和。 保证 $N$ 和 $M$ 均不超过 $300\,000$。

输出格式

对于每组数据,输出一行,包含一个整数,表示能够得到的数组 $a$ 的最大元素之和。

样例

输入 1

4
1 4
1 2 3 4
2 7
10 3 7 1 4 6 3
4 10
103 354 1 227 179 189 142 201 165 140
5 3
-10 11 -4

输出 1

2
18
1085
17

说明

在第一组数据中,所有操作都作用于数组 $a$ 的第一个元素。它依次变为 $1 - 0 = 1, 2 - 1 = 1, 3 - 1 = 2, 4 - 2 = 2$,因此答案为 $2$。

在第二组数据中,可以执行以下操作序列:

  1. 对第一个元素应用操作:$a_1 = 10 - a_1 = 10 - 0 = 10, a = [10, 0]$。
  2. 对第一个元素应用操作:$a_1 = 3 - a_1 = 3 - 10 = -7, a = [-7, 0]$。
  3. 对第一个元素应用操作:$a_1 = 7 - a_1 = 7 - (-7) = 14, a = [14, 0]$。
  4. 对第一个元素应用操作:$a_1 = 1 - a_1 = 1 - 14 = -13, a = [-13, 0]$。
  5. 对第二个元素应用操作:$a_2 = 4 - a_2 = 4 - 0 = 4, a = [-13, 4]$。
  6. 对第一个元素应用操作:$a_1 = 6 - a_1 = 6 - (-13) = 19, a = [19, 4]$。
  7. 对第二个元素应用操作:$a_2 = 3 - a_2 = 3 - 4 = -1, a = [19, -1]$。

最终得到 $a = [19, -1]$,因此最终和为 $18$。 可以证明不存在更好的结果。

子任务

本题包含十个测试组。仅当通过某组的所有测试点以及该组所要求的全部前置组测试点时,才能获得该组的分数。请注意,某些组不需要通过样例测试。离线评测(Offline-evaluation)意味着该组的测试结果仅在比赛结束后公布。

组别 分数 $n, N$ $m, M$ $x_i$ 所需组别 说明
0 0 样例
1 4 $0 \le x_i$ 所有 $x_i$ 相同
2 8 $n = 2$ $M \le 30, m \le 18$
3 11 $n = 2$ $M \le 50$ $-10 \le x_i \le 10$
4 9 $n = 2$ $M \le 400$ $-400 \le x_i \le 400$ 3
5 8 $N \le 30, n \le 18$ $M \le 30, m \le 18$ 0
6 10 $N \le 2000$ $M \le 2000$ $0 \le x_i$
7 12 $N \le 2000$ $M \le 2000$ 0, 2 – 6
8 10 $0 \le x_i$ 1 $x_i$ 中最多有两个不同的值
9 17 $0 \le x_i$ 1, 6, 8
10 11 0 – 9 离线评测

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.