QOJ.ac

QOJ

时间限制: 2 s 内存限制: 1024 MB 总分: 100

#7278. 把评测服务器搞挂了?

统计

紧张的第一天比赛已经结束……尽管科学委员会勉强抵御了针对评测服务器的黑客攻击,但他们担心这影响了提交记录的评分。现在只有一个选择:所有提交记录必须重新评测!

评测服务器拥有 $N$ 个处理器核心。委员会已经为每个核心分配了一份包含 $S$ 个提交记录的列表,其中每个提交记录对应比赛的 $T$ 个任务之一(编号为 $1, \dots, T$)。委员会确保了 $S$ 是 2 的幂次。现在,在接下来的 $S$ 分钟内,每个核心每分钟将评估其列表中的恰好一个提交记录。

不幸的是,包含任务数据的数据库非常脆弱,如果针对单个任务数据的并发请求数量波动过大,数据库可能会崩溃。因此,委员会希望对每个核心的提交记录进行排序,使得在重新评测期间,对于任何单个任务,同时被评估的提交记录数量的最大值和最小值之差不超过 1。

编写一个程序,计算出这样一种提交记录到核心的有序分配方案。

输入格式

第一行包含上述三个整数 $N, S$ 和 $T$。

接下来 $N$ 行描述分配给各核心的提交记录。第 $i$ 行包含 $S$ 个整数 $t_1, \dots, t_S$ ($1 \le t_j \le T$),表示第 $i$ 个核心被分配了分别对应任务 $t_1, \dots, t_S$ 的提交记录。

输出格式

你的程序应输出 $N$ 行,描述提交记录到核心的有序分配方案,使得对于任何单个任务,同时被评估的提交记录数量的最大值和最小值之差不超过 1:第 $i$ 行应包含 $S$ 个整数 $r_1, \dots, r_S$,表示第 $i$ 个核心在第 $j$ 分钟评估对应任务 $r_j$ 的提交记录。保证对于每个测试用例,这样的分配方案都存在。

数据范围

我们始终有 $S = 2^k$,其中 $k$ 为某个正整数,$1 \le N, S, T \le 100\,000$ 且 $N \cdot S \le 500\,000$。

  • 子任务 1(10 分):$S = 2$ 且 $N, T \le 20$。
  • 子任务 2(15 + 5 + 5 分):$S = 2$。
  • 子任务 3(15 + 5 + 5 分):$N \cdot S \le 10\,000$。
  • 子任务 4(20 + 10 + 10 分):无额外限制。

部分分说明:在子任务 2、3 和 4 中,你可以通过括号内指示的方式获得部分分: 第一个数字表示如果你解决了所有满足 $T \le N$ 且每个任务的总提交数能被 $S$ 整除的测试用例所获得的积分。 第二个数字表示如果你更一般地解决了所有满足 $T \le N$ 的测试用例所获得的额外积分。 * 第三个数字表示如果你解决了所有测试用例所获得的额外积分。

在网页界面中,这显示为相应子任务的“Group 1”、“Group 2”和“Group 3”。

注:在 QOJ 上,子任务 2、3、4 的部分分被显示为独立的子任务。子任务 2 ~ 4 对应原问题子任务 2 中的测试组,子任务 5 ~ 7 对应原问题子任务 3 中的测试组,子任务 8 ~ 10 对应原问题子任务 4 中的测试组。

样例

输入 1

3 2 3
1 2
2 3
2 3

输出 1

2 1
3 2
2 3

说明 1

在第一个样例的输出中,任务 1 和任务 2 的同时评估提交记录数量的最大值与最小值之差为 1,任务 3 为 0。另一方面,如果按照输入中的顺序排列提交记录,则不构成有效的输出,因为任务 3 的同时评估提交记录数量的最大值与最小值之差为 2。

输入 2

3 4 3
2 3 2 2
2 3 3 2
2 2 3 2

输出 2

2 2 2 3
3 2 3 2
2 3 2 2

说明 2

在第二个样例的输出中,所有三个任务的同时评估提交记录数量的最大值与最小值之差均为 0。

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.