#YDRS003E. 花与剑的轮舞
花与剑的轮舞
题目描述
Yoimiya 有一个 的矩阵 。 中的每个元素都是 中的非负整数。
她用这个矩阵 生成了一个 的矩阵 ,其中 的值为 中每个位置到 的曼哈顿距离乘上这个位置的权值之和。
形式化地,有
$$E_{i,j}=\sum_{1\le x\le n}\sum_{1\le y\le m}(|x-i|+|y-j|)A_{x,y} $$现在,Yoimiya 丢失了原本的矩阵 ,她希望你用矩阵 还原出一个符合上述条件的 。如果有多解,输出任意一组即可。
注意尽管实际的矩阵 中每个元素均在 内,但 Yoimiya 并不要求你还原出的 中的元素 。她只要求你还原出的 中的每个元素均为 非负整数。
输入格式
本题有多组数据。 第一行输入一个正整数 表示数据组数。对于每组数据:
第一行两个正整数 。
接下来 行,每行 个整数,第 行的第 个数为 。
输出格式
对于每组数据,输出一个 的矩阵表示你构造的 矩阵。请保证你构造的矩阵中,元素 。
样例 输入
3
1 2
1 1
6 6
43 34 25 24 33 42
42 33 24 23 32 41
41 32 23 22 31 40
40 31 22 21 30 39
39 30 21 20 29 38
48 39 30 29 38 47
2 2
400000 400000
400000 400000
样例 输出
1 1
0 0 4 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 5 0 0
0 0 0 0 0 0
200000 0
0 200000
样例 解释
不难验证给出的矩阵符合条件。
尽管第三组数据中,答案给出的构造中存在 (因而不可能是 Yoimiya 一开始拥有的矩阵 ),但每个数都是非负整数,因此仍然是合法的。
样例
见附加文件中的 rapieres2/3/4.in
与 rapieres2/3/4.ans
。
每个样例中均有 组数据,其中前 组数据分别满足特殊性质 AB,AC,BC,A,B,C,第 组数据可能不满足任何特殊性质。
此外,样例 满足 ,样例 满足 ,样例 满足 。
校验器
为了方便选手测试,在附件中我们下发了 checker.cpp
文件与 testlib.h
目录,选手可以在 testlib.h
的同一目录下编译该程序,并使用它校验自己的输出文件。但请注意它与最终评测时所使用的校验器并不完全一致。你也不需要关心其代码的具体内容。
编译命令为:g++ checker.cpp −o checker -std=c++14
。
checker
的使用方式为:checker <inputfile> <outputfile> <answerfile>
,参数依次表示输入文件,你的输出文件,以及答案输出文件。
若你的输出与输出格式不符,则校验器会给出相应提示。若你的输出格式正确,但方案错误,则校验器会给出简要的错误信息。具体来说,设你给出的矩阵为 ,设 ,校验器会给出任意一个 满足 。若你的方案正确,校验器会给出 ok
。
数据范围与约束
对于所有数据,$1\le \sum n,\sum m\le 3000,1\le T\le 3000,0\le E_{i,j}\le 10^{16}$。
本题共有 个测试点,每个测试点 分。每个测试点的具体限制如下:
测试点编号 | 特殊性质 | |
---|---|---|
B | ||
AB | ||
A | ||
BC | ||
B | ||
无 | ||
BC | ||
B | ||
C | ||
无 | ||
- 特殊性质 A:存在一组解 满足所有的 均相等。
- 特殊性质 B:存在一组 的解。
- 特殊性质 C:。
相关
在下列比赛中: