【对称矩阵】Find Symmetries

该博客探讨了如何确定矩阵在经过上下左右移动后是否能形成对称矩阵的问题。作者指出,通过对矩阵元素的等价性分析,可以将移动次数从O(n^4)降低到O(n^3),并揭示了移动差值对确定对称性的重要性。
摘要由CSDN通过智能技术生成

题目链接

【题意】:

这个就是一个矩阵,然后问,这个矩阵通过往下移动或者往右移动可以有对称矩阵。

最多可以移动(n*m)次。

【题解】:

看了很多人的博客,然后还是胜营兄告诉我的结论我才恍然大悟的。


这个结论首先是:

(x,y)等价于(x+t,y+t)

(x+t,y+t)指的是整个矩阵移动,这个移动是循环的,就是说往右移动,左边的的补过来。

如果(x,y)当前位置的矩阵是对称的,那么(x+t,y+t)是不是也是对称呢???


如果对于任意位置表示为:(i+x,j+y),然后横纵坐标同时减x。

还是等价的:(i,j+y-x)。发现没有其实我们枚举x:1~n  和 y:1~n,

都可以变成枚举两者之间的差值,所以降了一个n。

O(n^4)->O(n^3).

然后答案找到这样的一个差值必须是+n。

为什么呢???因为你只要知道这样的一个差值,那么就说明(i+x,j+y)的位置对称,那么(i+x+1,j+y+1)~(i+x+n,j+y+n)都对称。

所以直接加上n。


#include<bits/stdc++.h>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值