题面
传送门:LA-3704
样例
Sample Input
5 3 1 1
1 2 2 1 2
5 3 1 10
1 2 2 1 2
Sample Output
2 2 2 2 1
2 0 0 2 2
思路
既然这里讲的是矩阵的运算 那么一定是要构造一个递推的关系
从题面上很难发现有什么规律可言
于是
我们动手画画
发现每次的变化都是上次的有序排列
比如样例中的第一组输入输出
[1 1 0 0 1] [1] = [2]
[1 1 1 0 0] [2] = [2]
[0 1 1 1 0] [2] = [2]
[0 0 1 1 1] [1] = [2]
[1 0 0 1 1] [2] = [1]
发现了么,左边的矩阵的每下一行都是上一行的元素向右移动一格
这样的矩阵 只要保存一行信息即可我们称之为”循环矩阵”.
于是原来n^3logk的爆炸事件在这个循环矩阵的优化下
降到了n^2logk.
代码
1 |
|