/* 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 合集,包括英文原题和中文译题,测试数据以及答案,很全啊!usaco 合集usaco 合集usaco 合集usaco 合集
USACO 题库源码第一部分,共两部分,全是原创的,或许对NOIP,NOI,ACM爱好者有帮助
usaco历年测试数据
usaco 2010-2011 nov news,喜欢usaco的朋友可以看看
某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试
usaco的总结和心得 包括了对题目的分了和总结 以及对题目的解法概括
USACO题集及答案
USACO历年比赛测试数据:2003年 方便大家测试
USACO做题代码
USACO教程,包含USACO全部英文原题,题解(NOCOW整理版),翻译,教程,代码,测试数据。
USACO全部译题 USACO Training Program Gateway
内含USACO全部测试数据,绝对全
usaco traning的全部数据 才要3分
USACO所有题目的题解 NOCOW整理版
USACO1.1的源代码,新手入门可用 Only post for the new c++ students
Usaco总结&题解 一位大牛写的Usaco的总结,并有所有题的题解,推荐!!
USACO历年比赛测试数据:2006年方便大家测试
USACO题解+代码+翻译,好东西,超级齐全,对大家帮助不小,特别是现在nocow挂了
数据结构机考所参考的USACO网站所有题目的解题思路,资源比较稀有!
含2001~2017全部比赛赛题测试数据 2001~2007 数据√ 题面× 标程题解× 2008~2010 数据√ 题面√ 标程题解× 2011~2017 数据√ 题面√ 标程题解√ 其中除2008~2010外其他年份均按照年度、月度、金银铜白金组别整理...