以下是使用 Python 解决此问题的示例代码: ```python import math def check_possible(n, m, k, positions): if k > n: return -1 count = 0 matrix = [[0] * n for _ in range(n)] for x, y, z in positions: matrix[x - 1][y - 1] = z def operate(x, y, add): for i in range(x, min(x + k, n)): for j in range(y, min(y + k, n)): matrix[i][j] += add while True: found_non_zero = False for i in range(n): for j in range(n): if matrix[i][j]!= 0: found_non_zero = True if i + k <= n and j + k <= n: operate(i, j, -matrix[i][j] // abs(matrix[i][j])) count += 1 if not found_non_zero: break for row in matrix: for num in row: if num!= 0: return -1 return count n, m, k = map(int, input().split()) positions = [list(map(int, input().split())) for _ in range(m)] print(check_possible(n, m, k, positions)) ``` 这段代码首先构建初始矩阵,然后通过不断的操作尝试将所有元素变为 0 ,如果最终无法全部变为 0 则返回 -1 ,否则返回操作次数。 [2024-10-24 14:05:14 | AI写代码神器 | 360点数解答]