#dxy26004. 矩阵平滑稳定
矩阵平滑稳定
题目描述
给定一个 行 列的整数矩阵 ,每个元素取值范围 ,对矩阵重复执行迭代平滑操作,直到矩阵进入稳定状态。
平滑操作规则
对矩阵每一个位置 :
- 取以 为中心的 窗口;
- 若窗口超出矩阵边界,则仅保留窗口与矩阵重叠区域内的所有元素;
- 计算区域内所有元素的平均值,向下取整,作为新矩阵 的值。
收敛稳定条件
完整执行一轮平滑操作后,生成的新矩阵与操作前原矩阵完全一致(所有位置数值无变化),此时停止迭代。
输出两项内容:
- 到达稳定状态一共进行的平滑迭代次数;
- 最终稳定后的完整矩阵。
输入格式
第一行两个整数 ,代表矩阵行数、列数。 接下来 行,每行 个整数,为矩阵初始元素。
输出格式
第一行单独一个整数:迭代总次数。 之后 行,每行 个用空格隔开的整数,为稳定后的矩阵。
样例输入 1
2 2
1 2
3 4
样例输出 1
1
2 2
2 2
样例1解释
初始矩阵:
每个位置有效窗口都包含全部4个数字,总和 ,平均值 ,向下取整为 。 第一次平滑后矩阵全为 ,和原矩阵不同,迭代次数记1; 再次平滑全2矩阵结果不变,达到稳定,最终迭代次数为1。
样例输入 2
3 3
1 2 1
2 9 2
1 2 1
样例输出 2
2
2 2 2
2 2 2
2 2 2
样例2解释
第1轮平滑后矩阵:
$$\begin{bmatrix} 3 & 2 & 3 \\ 2 & 2 & 2 \\ 3 & 2 & 3 \end{bmatrix} $$与原矩阵不一致,迭代计数+1; 第2轮平滑后所有元素变为2,得到全2矩阵;再次平滑无变化,稳定,总迭代次数为2。
样例输入 3
1 1
42
样例输出 3
0
42
样例3解释
仅单个元素,3×3窗口只有自身,平滑后数值不变,初始即稳定,迭代次数为0。
数据范围与约束
| 参数 | 取值范围 |
|---|---|
| 矩阵元素 | |
| 最大迭代轮数 | 不超过 1000,实际收敛速度很快 |
| 时间上限 | ,最大运算量约 ,可正常通过时限 |
相关
在下列比赛中: