信息
- ID
- 1557
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
先比较 ∑Ai 与 ∑Bj 对 K 的余数;二者不同则总和不可能同时满足行列条件。
否则先假设所有格子都是 K−1,记第 i 行为了得到余数 Ai 至少还需减少 Ci,第 j 列类似地至少需减少 Dj,其中每个缺口都取 [0,K−1] 内的代表元。
总减量至少是 Z=max(∑Ci,∑Dj)。两侧缺口和模 K 相同,可给较小的一侧某个缺口增加适当的 K 使两侧总和都等于 Z,再不断在仍有行缺口和列缺口的交点处减少即可;单格最多减少 K−1,所以一定能构造。
答案为 HW(K−1)−Z,时间复杂度 O(H+W),空间复杂度 O(1)(除输入数组外)。