[CF1136C]Nastya Is Transposing Matrices

题目大意,给定两个矩阵,

问左边的矩阵能不能通过任意次对于子矩阵的转置操作得到右边的矩阵

两个矩阵的范围在500*500以内

cf的题做完之后都有一种被耍的感觉23333

看到这题我第一眼想到的是如何枚举,当然会超时

由于太过BAka还想着500究竟会不会爆

然后就想到怎样的元素可以被交换

对啊,对角线!

123

456

789

转置的话只有2,4,

7,3才会被交换顺序

主对角线,从左上到右下的那个上面的是不变得

也就是矩阵的副对角线

但是有一点一直没有想清楚

就是转置之后会不会互相影响

然后就有一堆东西要枚举

但是DALAO的标称看完之后豁然开朗

只有在同一个副对角线上面的元素才可以被交换,这是显而易见的

而且交换的时候由于是无限次交换,我们可以通过转置2X2矩阵的方式,交换副对角线上面相邻元素的方式,无限次,实现不影响其他副对角线本副对角线的元素的任意交换!

那么只要检查一下每条副对角线上面的元素是不是严格相等就好了

小技巧:

a[i][j]在第(i+j)条副对角线上面

posted @ 2019-03-20 15:48  Amazonite  阅读(223)  评论(0编辑  收藏  举报