题解 | 球格模型(简单版)
球格模型(简单版)
https://www.nowcoder.com/practice/fada102a84ec459ea93e3db4918c0f04
n, m, k = map(int, input().split()) def get_matrix(n, m, k): if k < max(n, m): return -1 result = [[0] * m for _ in range(n)] used = 0 # 首先放 min(n, m) 个对角线上的 1 for i in range(min(n, m)): result[i][i] = 1 used += 1 # 如果 n > m,需要给多出来的行加小球(列 m-1) for i in range(m, n - 1): result[i][m - 1] = 1 used += 1 # 如果 m > n,需要给多出来的列加小球(行 n-1) for j in range(n, m - 1): result[n - 1][j] = 1 used += 1 # 最后剩下的球放在最后一个格子 last_i = n - 1 last_j = m - 1 result[last_i][last_j] = k - used + result[last_i][last_j] # 累加 return result result = get_matrix(n, m, k) if result == -1: print(-1) else: for row in result: print(' '.join(map(str, row)))