文章
10
粉丝
22
获赞
2
访问
4.2k
这个题的核心就是旋转角度和旋转后坐标的映射关系,把这个整明白了,整个题就迎刃而解
了。我一开始用矩阵的图片尝试去解得他们的关系,但看了很久没有思路。直到!我将矩阵
写在一行,惊奇地发现了规律!
举个例子:
123 456 789
→(顺时针旋转 90)
741 852 963
仔细一看,其实就是原矩阵从最后一行开始,每一行的第一个数字构成了旋转后矩阵的第一
行。即使知道这个点了,数学表示目前还不太能轻松写出的。需要在写for循环的时候根据i
和j的增大关系,来确定最后映射的公式。其他180的,270的和0的,依次类推。
下面看看完整代码(新人友好):
注意:Acwing上只有一组输入,这里有多组输入,注意;
#include <iostream>
using namespace std;
const int N = 10;
int s[N][N], t[N][N];
int n;
int main()
{
while(cin >> n)
{
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++)
cin >> s[i][j];
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++)
cin >> t[i][j];
if (t[0][0] == s[0][0])
{
bool out = false;
for (int i = 0; i < n; i ++)
{
for (int j = 0; j < n; j ++)
if (t[i][j] != s[i][j])
{
cout << "-1" << endl;
out = true;
break;
}
if (out) brea...
登录后发布评论
暂无评论,来抢沙发