本题要求构造一个 R 行 C 列的正整数矩阵,使得每一行、每一列都构成等差数列,且所有元素之和恰好等于 S。若无解则输出 −1。
观察可以发现一种非常简单的构造方法:让每一行内部所有元素都相等(即行内公差为 0),而不同行之间对应的首项构成一个等差数列。
设第 1 行的所有元素均为 a1(首项),行间公差为 d(d≥0,整数),那么第 i 行(1≤i≤R)的所有元素均为 a1+(i−1)⋅d。
此时:
你需要构造一个 R 行 C 列的矩阵,矩阵中的每个元素都是正整数。要求矩阵的每一行、每一列均构成等差数列,且所有元素之和恰好等于 S。 如果存在这样的矩阵,请输出任意一个;如果无解,输出 −1。
行数 R 和列数 C 均不超过 500,目标和 S 不超过 1018。
第一行包含三个正整数 R,C,S,分别表示矩阵的行数、列数和目标总和。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.