解题思路
本题要求求出最少的增加操作次数,使得网格在顺时针旋转 0∘、90∘、180∘、270∘ 后完全相同。由于每次只能将某个格子的数值增加 1,要想使若干格子最终相等,最优的做法是将它们全部增加到当前的最大值,所需操作次数即为 ∑(最大值−当前值)。
关键观察:旋转四次对应一组格子。对于网格中的任意位置 (x,y)(行列编号从 0 开始),顺时针旋转 90∘ 后的新坐标为 (y,n−1−x)。连续旋转四次会回到起点,因此除了 n 为奇数时的正中心格子单独成一组(大小为 1),其余所有格子都可以按旋转轨道分成大小为 4 的组。
算法步骤如下:
- 读入 n 和 n×n 的网格数值。
- 遍历网格的每一个格子 (i,j)。