当前位置: 首页 > news >正文

洛谷P1205 [USACO1.2] 方块转换

#include<bits/stdc++.h>
using namespace std;
int n;
char a[15][15],b[15][15],c[15][15],d[15][15];
//图案按顺时针转90度
//图案按逆时针旋转270度
bool work1()
{for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)b[j][n-i+1]=a[i][j];}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(b[i][j]!=c[i][j])return 0;return 1;
}
//图案按顺时针旋转180度
//图案按逆时针旋转180度
bool work2()
{for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)b[n-i+1][n-j+1]=a[i][j];}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(b[i][j]!=c[i][j])return 0;return 1;
}
//图案按顺时针旋转270度
//图案按逆时针旋转90度
bool work3()
{for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)b[n-j+1][i]=a[i][j];}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(b[i][j]!=c[i][j])return 0;return 1;
}
//图案在水平方向翻转
bool work4()
{for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)b[i][n-j+1]=a[i][j];}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(b[i][j]!=c[i][j])return 0;return 1;
}
//组合:图案在水平方向翻转,然后再按照 1-3中的一种再次转换
bool work5()
{work4();for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)a[i][j]=b[i][j];  if(work1())return 1;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)a[i][j]=b[i][j]; if(work2())return 1;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)a[i][j]=b[i][j]; if(work3())return 1;return 0;
}
//不改变
bool work6()
{for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(b[i][j]!=c[i][j])return 0;return 1;
}
//无效转换
void work()
{if(work1()){cout<<1;return ;}if(work2()){cout<<2;return ;}if(work3()){cout<<3;return ;}if(work4()){cout<<4;return ;}if(work5()){cout<<5;return ;}if(work6()){cout<<6;return ;}cout<<7;
}
int main()
{cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){cin>>a[i][j];d[i][j]=a[i][j];}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>c[i][j];work();return 0; //完美的结束QAQ
}


http://www.mrgr.cn/news/35639.html

相关文章:

  • LLMs之Code:Github Spark的简介、安装和使用方法、案例应用之详细攻略
  • ES6笔记
  • SQL练习(2)
  • leetcode86:分隔链表
  • 区块链赋能Web3:数据透明与隐私保护的新纪元
  • 快速入门Zookeeper
  • Java服务端服务发现:Nacos与Eureka的高级特性
  • Oracle(145)如何进行数据库的日常维护?
  • 【Go语言】Go语言结构体全面解析
  • 2048 游戏AI实现,轻松达到8192
  • 网络安全科普系统小程序的设计
  • python-list-append-method
  • 心觉:如何重塑高效学习的潜意识(1)两种方法的优缺点
  • C#:动态为Object对象添加新属性的方法
  • 【Linux 从基础到进阶】Hadoop 大数据平台搭建与优化
  • DevOps学习路线图
  • **CentOS7安装redis**
  • 物理学基础精解【16】
  • 【day20240925】常见数据集科普
  • 【Linux-基础IO】文件描述符重定向原理缓冲区
  • [大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理
  • 软考高级:需求工程- 4+1 视图 AI 解读
  • 【C++】STL详解之string类
  • 【Python】探索 PyTorch 在机器学习中的应用
  • 智慧照明,安全度夏:揭秘如何前置防御暴雨中的路灯杆漏电隐患
  • 【云原生安全篇】Trivy助力离线Harbor漏洞扫描实践