USACO 1.2 transform
来源:互联网 发布:java移动端服务端 编辑:程序博客网 时间:2024/05/17 02:34
题意概述:
求第一个字符矩阵经过怎样的变换可以变成第二个矩阵。
解题思路:
穷举所有变换
题解代码:
/*ID: PROG: transformLANG: C++ */#include<bits/stdc++.h>using namespace std;int n;void mat_rot(char a[][10],char m[][10]){ for(int i=0;i<n;i++) for(int j=0;j<n;j++) m[j][n-i-1]=a[i][j];}int mat_equal(char a[][10],char m[][10]){ for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(m[i][j]!=a[i][j])return 0; return 1;}int main(){ ifstream fin("transform.in"); ofstream fout("transform.out"); char a[10][10],b[10][10],m[10][10],m2[10][10]; while(fin>>n){ for(int i=0;i<n;i++) for(int j=0;j<n;j++){ fin>>a[i][j]; } for(int i=0;i<n;i++) for(int j=0;j<n;j++){ fin>>b[i][j]; } mat_rot(a,m); if(mat_equal(m,b))fout<<1<<endl; else{ mat_rot(m,m2); if(mat_equal(m2,b))fout<<2<<endl; else { mat_rot(m2,m); if(mat_equal(m,b))fout<<3<<endl; else{ for(int i=0;i<n;i++) for(int j=0;j<n;j++) m[i][j]=a[i][n-j-1]; if(mat_equal(m,b))fout<<4<<endl; else{ mat_rot(m,m2); if(mat_equal(m2,b))fout<<5<<endl; else{ mat_rot(m2,m); if(mat_equal(m,b))fout<<5<<endl; else { mat_rot(m,m2); if(mat_equal(m2,b))fout<<5<<endl; else { if(mat_equal(a,b))fout<<6<<endl; else fout<<7<<endl; } } } } } } } } return 0;}
阅读全文
0 0
- USACO 1.2 transform
- USACO 1.2 Transformations (transform)
- usaco 1.2.2 transform
- USACO 1.2 transform
- USACO 1.2 transform
- USACO 1.2.2 Transformations(transform)
- usaco-transform
- USACO transform
- 【USACO】transform
- usaco Transform
- usaco transform
- usaco transform
- usaco/ 1.2 milk2/transform/namenum/palsquare/dualpal
- usaco——transform
- USACO解析Transform篇
- USACO-section1.2.2 transform
- USACO transform
- USACO-Section1.2 transform[枚举]
- kubernetes的service的网络类型ingress的搭建(二)
- spring boot 项目增加flyway的使用遇到问题解决
- Cocos2dx 事件响应机制(1): GLView
- S-数独
- 【PMP认证考试之个人总结】第 2 章 组织和项目生命周期及管理过程
- USACO 1.2 transform
- 第十讲 整合Struts2和MyBatis
- C++虚函数五问
- Kotlin--基本
- POJ 1410 Intersection 笔记
- python学习之——with as语句
- eclipse快捷健大全
- 基于检索与深度神经网络的人机对话
- 用简单的方式讲解KMP算法