SP9753 TUPLEDIV - Tuple Division

题目描述

你需要处理 $N$ 个 $M$ 维元组,将其分成 $M$ 组,每个元组只能使用一次,每组的大小固定为 $C_1, C_2, \ldots, C_M$。定义第 $i$ 组的得分为该组中所有元组在第 $i$ 维上的值的总和。你的目标是在确保第 $1$ 组的得分最大化的基础上,再逐步最大化第 $2$ 组的得分,以此类推。

输入格式

第一行是一个整数 $T$,代表测试用例的数量。对每个测试用例: - 第一行包含两个整数 $N$ 和 $M$,分别代表元组的数量和每个元组的维数。 - 接下来的 $N$ 行每行包含 $M$ 个整数,表示一个 $M$ 维元组。 - 最后一行包含 $M$ 个整数 $C_1, C_2, \ldots, C_M$,表示各组的大小。

输出格式

对于每个测试用例,输出一行包含 $M$ 个整数,分别表示最优分配下每组的得分。 **样例输入** ``` 2 4 2 2 1 3 2 2 1 2 2 1 1 4 3 1 1 2 8 7 1 8 7 2 8 7 4 8 2 3 ``` **样例输出** ``` 5 2 8 7 7 ``` **提示** 在第二个测试用例中,可以进行如下分组: - 第 1 组:(8, 7, 2),得分为 8。 - 第 2 组:(8, 7, 1),得分为 7。 - 第 3 组:包含 (8, 7, 4) 和 (8, 2, 3),得分为 4 + 3 = 7。 **本翻译由 AI 自动生成**