USACO 1.2 Transformations (transform)
来源:互联网 发布:阿里云域名交易 编辑:程序博客网 时间:2024/04/28 19:47
/*ID: haolink1PROG: transformLANG: C++*///#include<iostream>#include <fstream>using namespace std;typedef unsigned int u_int;bool Is90(char** first_pattern,char** second_pattern,u_int row_num){ for(u_int i = 0; i < row_num; i++){ for(u_int j = 0; j < row_num; j++){ if(first_pattern[i][j] != second_pattern[j][row_num-1-i]) return false; } } return true;}bool Is180(char** first_pattern, char** second_pattern, u_int row_num){ for(u_int i = 0; i < row_num; i++){ for(u_int j = 0; j < row_num; j++){ if(first_pattern[i][j] != second_pattern[row_num-1-i][row_num-1-j]) return false; } } return true;}bool Is270(char** first_pattern, char** second_pattern, u_int row_num){ for(u_int i = 0; i < row_num; i++){ for(u_int j = 0; j < row_num; j++){ if(first_pattern[i][j] != second_pattern[row_num-1-j][i]) return false; } } return true;}bool Reflection(char** first_pattern, char** second_pattern, u_int row_num){ for(u_int i = 0; i < row_num; i++){ for(u_int j = 0; j < row_num; j++){ if(first_pattern[i][j] != second_pattern[i][row_num-1-j]) return false; } } return true; }void Reflect(char** source_pattern, char** target_pattern, u_int row_num){ for(u_int i = 0; i < row_num; i++){ for(u_int j = 0; j < row_num; j++){ target_pattern[i][row_num-1-j] = source_pattern[i][j]; } } }bool NoChange(char** first_pattern, char** second_pattern, u_int row_num){ for(u_int i = 0; i < row_num; i++){ for(u_int j = 0; j < row_num; j++){ if(first_pattern[i][j] != second_pattern[i][j]) return false; } } return true; }int main(){ ifstream fin ("transform.in"); u_int row_num = 0; fin>>row_num; char** first_pattern = new char*[row_num]; for(u_int i = 0; i < row_num; i++) first_pattern[i] = new char[row_num]; for(u_int i = 0; i < row_num; i++) fin>>first_pattern[i]; char** second_pattern = new char*[row_num]; for(u_int i = 0; i < row_num; i++) second_pattern[i] = new char[row_num]; for(u_int i = 0; i < row_num; i++) fin>>second_pattern[i]; //judge pattern u_int pattern = 0; if(Is90(first_pattern,second_pattern,row_num)) pattern = 1; else if(Is180(first_pattern,second_pattern,row_num)) pattern = 2; else if(Is270(first_pattern,second_pattern,row_num)) pattern = 3; else if(Reflection(first_pattern,second_pattern,row_num)) pattern = 4; else{ char** temp_pattern = new char*[row_num]; for(u_int i = 0; i < row_num; i++) temp_pattern[i] = new char[row_num]; Reflect(first_pattern,temp_pattern,row_num); if(Is90(temp_pattern,second_pattern,row_num)||Is180(temp_pattern,second_pattern,row_num) ||Is270(temp_pattern,second_pattern,row_num)) pattern = 5; else if(NoChange(first_pattern,second_pattern,row_num)) pattern = 6; else pattern = 7; for(u_int i = 0; i < row_num; i++){ delete[] temp_pattern[i]; } } ofstream fout("transform.out"); fout<<pattern<<endl; //cout<<pattern<<endl; //cout<<first_pattern[2]<<endl; //cout<<second_pattern[2]<<endl; for(u_int i = 0; i < row_num; i++){ delete[] first_pattern[i]; delete[] second_pattern[i]; } return 0;}
0 0
- USACO 1.2 Transformations (transform)
- USACO 1.2.2 Transformations(transform)
- USACO 1.2.2 Transformations
- USACO 1.2-Transformations
- usaco 1.2:Transformations
- USACO 1.2 Transformations
- USACO Section 1.2 Transformations
- [USACO 1.2.2] Transformations
- USACO 1.2.2 Transformations
- USACO 1.2.2 Transformations
- USACO 1.2.2 Transformations
- USACO 1.2.2 Transformations
- USACO Section 1.2 Transformations
- USACO--1.2 Transformations
- USACO 1.2 Transformations
- USACO--1.2Transformations
- USACO 1.2 Transformations
- USACO 1.2-Transformations
- 判断一个图是否是连通
- [Noi2011]阿狸的打字机
- eCos启动过程详解,基于Cortex-M架构
- Linux中grep命令的12个实践例子
- SVG线画如何实现
- USACO 1.2 Transformations (transform)
- 浅谈线段树 Segment Tree
- DELMIA简介
- 使用ZXing的二维码扫描和生成问题记录
- 黑马程序员_JAVA 学习笔记25 WEB篇12
- 黑马程序员_JAVA 学习笔记26 WEB篇13
- UML之协作图
- USACO 1.2 Palindromic Squares (palsquare)
- activity与service通信学习