QOJ.ac

QOJ

حد الوقت: 1.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 قابلة للهجوم ✓

#9460. 多样性与方差

الإحصائيات

Helianthuswolf Co., Ltd. 是一家跨国“Intestnet”公司。其全球市场收入逐年增长。Helianthuswolf 的企业文化是其成功的关键。

什么是 Helianthuswolf 的文化?Helianthuswolf 重视创新、激情、质量、协作和多样性。随着 Helianthuswolf 发展成为一家成功的跨国巨头,并拥有日益庞大的全球办事处网络,它现在最看重多样性。

然而,这艘巨轮并非总是一帆风顺。Helianthuswolf 最近遭遇了金融危机。为了在危机中生存,公司决定进行裁员。每个部门都必须裁掉一定数量的程序员。为了反对年龄歧视并尊重多样性文化,Helianthuswolf 决定在裁员后保持年龄的多样性。

但 Helianthuswolf 的招聘人员有些夸大其词且刻板印象严重。他们需要一个可量化的公式来衡量多样性。在阅读了数学书后,他们认为方差是衡量多样性的最佳指标。因此,他们希望在裁员后最大化剩余程序员年龄的方差。

在概率论和统计学中,方差是随机变量与其平均值之差的平方的期望值。集合 $\{x_1, x_2, \dots, x_k\}$ 的方差为 $\frac{1}{k} \sum_{i=1}^{k} (x_i - \frac{1}{k} \sum_{j=1}^{k} x_j)^2$。

请帮助招聘人员编写一个程序,以决定哪些程序员将被裁掉。

输入格式

输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:

第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 10^5$, $0 \le m < n$),分别表示团队中程序员的人数和公司将要裁掉的程序员人数。

第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 10^4$),表示每位程序员的年龄。

保证所有测试数据的 $n$ 之和小于 $2 \times 10^6$。

输出格式

对于每组测试数据,在一行中按递增顺序输出 $n - m$ 个整数。这 $n - m$ 个整数是剩余程序员的索引。如果有多种方案能使方差最大化,请选择字典序最小的一种。每行末尾不要输出多余的空格。

如果序列 $\{x_1, x_2, \dots, x_p\}$ 满足以下条件之一,则称其字典序小于序列 $\{y_1, y_2, \dots, y_q\}$:$p < q$ 且对于所有 $1 \le i \le p$ 都有 $x_i = y_i$,或者存在一个整数 $r$ ($r < p, r < q$) 使得对于所有 $1 \le i \le r$ 都有 $x_i = y_i$ 且 $x_{r+1} < y_{r+1}$。

样例

输入 1

9
3 2
34 35 36
4 2
20 35 41 74
5 2
40 30 50 20 10
5 2
50 40 30 20 10
5 2
10 20 30 40 50
5 3
30 40 20 10 50
5 4
10 20 30 40 50
5 1
30 50 40 20 10
5 0
30 50 40 20 10

输出 1

1
1 4
1 3 5
1 2 5
1 2 5
4 5
1
2 3 4 5
1 2 3 4 5

说明

在第一种情况下,裁掉任意两名程序员都不会改变方差,因此我们有三个候选答案“1”、“2”和“3”。在这三个答案中,“1”的字典序最小。因此我们输出“1”(不含引号)。

在第二种情况下,裁掉一名 35 岁(第 2 个)和一名 41 岁(第 3 个)的程序员可以使方差最大化。由于“1 4”的字典序小于“4 1”,我们输出“1 4”(不含引号)。

在第三种情况下,我们有 12 个候选答案“1 3 5”、“1 5 3”、“3 1 5”、“3 5 1”、“5 1 3”、“5 3 1”、“3 4 5”、“3 5 4”、“4 3 5”、“4 5 3”、“5 3 4”和“5 4 3”。由于“1 3 5”是字典序最小的,我们输出“1 3 5”(不含引号)。

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.