/* ID: bbsunch2 PROG: transform LANG: C++ */ #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std; vector<vector<char> > rotate90(vector<vector<char> > formerMatrix, int num) { vector<vector<char> > latterMatrix; for(int i = 0; i < num; i++) { vector<char> lineA; for(int j = 0; j < num; j++) { char a = formerMatrix[num-j-1][i]; lineA.push_back(a); } latterMatrix.push_back(lineA); } return latterMatrix; } vector<vector<char> > rotate180(vector<vector<char> > formerMatrix, int num) { vector<vector<char> > latterMatrix; for(int i = 0; i < num; i++) { vector<char> lineA; for(int j = 0; j < num; j++) { char a = formerMatrix[num-i-1][num-j-1]; lineA.push_back(a); } latterMatrix.push_back(lineA); } return latterMatrix; } vector<vector<char> > rotate270(vector<vector<char> > formerMatrix, int num) { vector<vector<char> > latterMatrix; for(int i = 0; i < num; i++) { vector<char> lineA; for(int j = 0; j < num; j++) { char a = formerMatrix[j][num-i-1]; lineA.push_back(a); } latterMatrix.push_back(lineA); } return latterMatrix; } vector<vector<char> > reflection(vector<vector<char> > formerMatrix, int num) { vector<vector<char> > latterMatrix; for(int i = 0; i < num; i++) { vector<char> lineA; for(int j = 0; j < num; j++) { char a = formerMatrix[i][num-j-1]; lineA.push_back(a); } latterMatrix.push_back(lineA); } return latterMatrix; } bool compareMatrix(vector<vector<char> > formerMatrix, vector<vector<char> > latterMatrix, int num) { bool matrixEqual = true; for(int i = 0; i < num; i++) { bool lineEqual = true; for(int j = 0; j < num; j++) { if(formerMatrix[i][j] != latterMatrix[i][j]) { lineEqual = false; break; } } if(lineEqual == false) { matrixEqual = false; } } return matrixEqual; } int main() { ofstream fout ("transform.out"); ifstream fin ("transform.in"); vector<vector<char> > matrixA; vector<vector<char> > matrixB; int num = 0; fin >> num; for(int i = 0; i < num; i++) { vector<char> lineA; for(int j = 0; j < num; j++) { char a; fin >> a; lineA.push_back(a); } matrixA.push_back(lineA); } for(int i = 0; i < num; i++) { vector<char> lineB; for(int j = 0; j < num; j++) { char b; fin >> b; lineB.push_back(b); } matrixB.push_back(lineB); } vector<vector<char> > matrixRotate = rotate90(matrixA, num); if(compareMatrix(matrixRotate,matrixB,num)) { fout << 1 << endl; return 0; } matrixRotate = rotate180(matrixA,num); if(compareMatrix(matrixRotate,matrixB,num)) { fout << 2 << endl; return 0; } matrixRotate = rotate270(matrixA,num); if(compareMatrix(matrixRotate,matrixB,num)) { fout << 3 << endl; return 0; } vector<vector<char> > Matrixreflaction = reflection(matrixA,num); if(compareMatrix(Matrixreflaction,matrixB,num)) { fout << 4 << endl; return 0; } matrixRotate = rotate90(Matrixreflaction, num); if(compareMatrix(matrixRotate,matrixB,num)) { fout << 5 << endl; return 0; } matrixRotate = rotate180(Matrixreflaction,num); if(compareMatrix(matrixRotate,matrixB,num)) { fout << 5 << endl; return 0; } matrixRotate = rotate270(Matrixreflaction,num); if(compareMatrix(matrixRotate,matrixB,num)) { fout << 5 << endl; return 0; } if(compareMatrix(matrixA,matrixB,num)) { fout << 6 << endl; return 0; } fout << 7 << endl; return 0; }
相关推荐
USACO,全称为United States阿Olympiad in Informatics,是美国计算机奥林匹克竞赛,旨在为高中生提供一个学习和展示编程技能的平台。这个比赛涵盖了算法、数据结构以及问题解决等多个方面,对于想要深入理解计算机...
USACO,全称为United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者的算法设计、问题解决和编程能力。该比赛每年举行,分为青铜、白银、黄金和铂金四个级别,难度逐渐递增。...
### USACO 2010-2011 季度竞赛概览与关键信息 #### 一、概述 美国计算机奥林匹克(USACO)是面向全球中学生的计算机科学竞赛,旨在发掘并培养计算机科学领域的年轻人才。USACO 2010-2011 季度竞赛于 2010 年 11 月...
《USACO 合集:全面解析与学习指南》 USACO,全称为USA Computing Olympiad,是一项针对中学生举办的在线编程竞赛,旨在提升参赛者的算法设计和问题解决能力。这个合集提供了丰富的资源,包括英文原题、中文译题、...
USACO,全称United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者在算法设计、问题解决以及计算机科学基础方面的技能。这个压缩包文件提供了丰富的资源,帮助参赛者或学习者更好...
【源码】在“USACO 题库源码第一部分”中,包含的是USACO比赛题目对应的参考解决方案或参赛者提交的代码,这对于学习者来说是非常宝贵的资源。通过分析这些源码,可以学习到如何运用不同的数据结构和算法来解决实际...
USACO,全称United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者的算法设计、编程能力和问题解决能力。本压缩包包含了USACO比赛的题解、源代码以及对应的中文翻译,对于想要...
【标题】"usaco traning全部数据" 涉及的是一个编程竞赛训练平台——USACO(USA Computing Olympiad)的数据集。USACO是一个专门为美国中学生设计的在线编程竞赛,旨在提升参赛者的算法设计和编程能力,特别是在解决...
USACO(美国计算机奥林匹克竞赛)是面向全球中学生的一项编程竞赛,主要涉及算法和问题解决能力。这个压缩包文件“usaco历年测试数据”包含了该赛事历年的测试题目和样例输入输出数据,这对于参赛者准备比赛或者提升...
某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试
USACO,全称为United States Computer Olympiad,是一项面向中学生的国际性计算机编程竞赛,旨在提升参赛者的算法设计和编程能力。USACO比赛通常使用C++语言进行,因此"USACO 1.1 c++源程序"指的是USACO入门阶段1.1...
### USACO心得及总结 #### 第一部分 动态规划 **USACO**(美国计算机奥林匹克竞赛)作为一项国际知名的编程竞赛,不仅考验参赛者的编程能力,还对其算法理解和应用有着极高的要求。其中,动态规划(Dynamic ...
USACO,全称United States阿Olympiad in Computer Science,是美国计算机科学奥林匹克竞赛,旨在激发中学生对计算机科学的兴趣,尤其是算法和编程技能。这个"USACO全部测试数据.zip"压缩包包含了历年来USACO比赛的...
USACO,全称United States Computer Olympiad,是美国计算机奥林匹克竞赛,是一项旨在培养青少年编程技能和算法理解的国际性比赛。这个比赛对于有志于在计算机科学领域深入发展的学生来说,具有很高的学习价值和挑战...
USACO(USA Computing Olympiad)是美国计算机奥林匹克竞赛,是一项面向中学生的编程竞赛,旨在提升学生的算法设计、编程和问题解决能力。该比赛通常包括训练营和一系列在线比赛,最终选拔出优秀选手代表美国参加...
标签中包含的关键词:“usaco”、“acm”、“pku”、“测试数据”和“源码”,进一步细化了主题。USACO和ACM都是编程竞赛的名称,而“pku”是比赛的组织者之一。"测试数据"意味着这个压缩包包含了用于检验编程解决...
《USACO全部测试数据详解》 USACO,全称United States Computer Olympiad,是美国计算机奥赛,是一项旨在提升青少年计算机编程能力的竞赛。该竞赛覆盖了基础算法、数据结构、问题解决等多个计算机科学的重要领域,...
USACO,全称为United States Computer Olympiad,是一项面向中学生的国际性计算机编程竞赛,旨在提升参赛者在算法设计、问题解决以及编程方面的技能。USACO比赛通常包含多个编程题目,参赛者需要使用C++、Java等语言...
【标题】"USACO训练代码" USACO(USA Computing Olympiad)是美国计算机奥林匹克竞赛,旨在提高高中生的算法编程能力。这个压缩包“usaco_training code”包含的是一系列用于USACO培训的代码,由作者亲自编写。通过...
USACO,全称为United States Computer Olympiad,是一项面向美国中学生的编程竞赛,旨在培养青少年在算法设计、问题解决和计算机科学方面的技能。这个压缩包包含的是2005年度USACO比赛的测试数据,对于参赛者或者对...