博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
week11作业 B-必做题11-2
阅读量:3949 次
发布时间:2019-05-24

本文共 1548 字,大约阅读时间需要 5 分钟。

题目

蒜头君的班级里有 n^2 个同学,现在全班同学已经排列成一个 n∗n 的方阵,但是老师却临时给出了一组新的列队方案为了方便列队,所以老师只关注这个方阵中同学的性别,不看具体的人是谁。

这里我们用 0 表示男生,用 1 表示女生.

现在蒜头君告诉你同学们已经排好的方阵是什么样的,再告诉你老师希望的方阵是什么样的.他想知道同学们已经列好的方阵能否通过顺时针旋转变成老师希望的方阵.

不需要旋转则输出 0顺时针旋转 90° 则输出 1顺时针旋转 180° 则输出 2顺时针旋转 270° 则输出 3若不满足以上四种情况则输出 −1,若满足多种情况,则输出较小的数字输入格式第一行为一个整数 n.

接下来的 n 行同学们已经列好的 01 方阵;再接下来的 n 行表示老师希望的的 01 方阵。

输出格式输出仅有一行,该行只有一个整数,如题所示。数据范围对于 100% 的数据中,1≤n≤20输出时每行末尾的多余空格,不影响答案正确性

样例输入

40 0 0 00 0 0 00 1 0 00 0 0 00 0 0 00 1 0 00 0 0 00 0 0 0

样例输出

1

解题思路

旋转与不旋转,如若旋转,旋转多少度满足条件?

判断两个方阵是否相同,则判断它们每行每列所对应的元素是否相同。
把方阵a顺时针旋转90°与b做比较,会发现其实就是比较a[i][j]与b[j][n-i+1]是否相同
把方阵a顺时针旋转180°与b做比较,会发现其实就是比较a[i][j]和b[n-i+1][n-j+1]是否相同
把方阵a顺时针旋转270°与b做比较,会发现其实就是比较a[i][j]和b[n-j+1][i]是否相同

比如:

a0 0 10 0 01 1 1b1 0 01 0 01 0 1a转90°,其实是a第一行变成了b的第三列,第二行变成了b的第二列,第三行变成了b的第一列。那么对于n阶矩阵涅?我们不难发现,a第一行变成了b第n列,a第二行变成了b第n-1列……

Codes

#include
using namespace std;int n;int a[21][21],b[21][21];bool same(){
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(a[i][j]!=b[i][j]) return false; return true;}bool sp1(){
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(a[i][j]!=b[j][n-i+1]) return false; return true;}bool sp2(){
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(a[i][j]!=b[n-i+1][n-j+1]) return false; return true;}bool sp3(){
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(a[i][j]!=b[n-j+1][i]) return false; return true;}int main(){
cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>b[i][j]; if(same()) cout<<"0"<

转载地址:http://edwzi.baihongyu.com/

你可能感兴趣的文章
maven之pom.xml配置文件详解
查看>>
java基础学习之抽象类与接口的区别
查看>>
java基础学习之包、类、方法、属性、常量的命名规则
查看>>
java基础知识学习之匿名内部类
查看>>
SSM框架和SSH框架的区别
查看>>
Elasticsearch-基础介绍及索引原理分析
查看>>
过滤敏感词算法
查看>>
linux学习之shell脚本if判断参数-n,-d,-f等
查看>>
linux学习之windos文件在linux里面乱码解决
查看>>
idea快捷键
查看>>
linux学习之shell遍历数组
查看>>
python函数取参及默认参数使用
查看>>
linux学习之shell中的${},##, %% , :- ,:+, ? 的使用
查看>>
Spring学习之Filter、Interceptor、Aop实现与区别
查看>>
Spring 添加@Autowired注释, 注入对象却为空
查看>>
springSecurity学习
查看>>
通过Java的api操作redis
查看>>
jquery基本选择器
查看>>
linux学习之shell字符串大小写转换
查看>>
Linux下用base64对字符串进行加密解密
查看>>