P1205 方块转换 Transformations【洛谷算法习题】
P1205 方块转换 Transformations网页链接P1205 方块转换 Transformations题目描述一块n × n n \times nn×n正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式转90 ° 90\degree90°图案按顺时针转90 ° 90\degree90°。转180 ° 180\degree180°图案按顺时针转180 ° 180\degree180°。转270 ° 270\degree270°图案按顺时针转270 ° 270\degree270°。反射图案在水平方向翻转以中央铅垂线为中心形成原图案的镜像。组合图案在水平方向翻转然后再按照1 ∼ 3 1 \sim 31∼3之间的一种再次转换。不改变原图案不改变。无效转换无法用以上方法得到新图案。如果有多种可用的转换方法请选择序号最小的那个。只使用上述7 77个中的一个步骤来完成这次转换。输入格式第一行一个正整数n nn。然后n nn行每行n nn个字符全部为或-表示初始的正方形。接下来n nn行每行n nn个字符全部为或-表示最终的正方形。输出格式单独的一行包括1 ∼ 7 1 \sim 71∼7之间的一个数字在上文已描述表明需要将转换前的正方形变为转换后的正方形的转换方法。输入输出样例 #1输入 #13 - --- - - -- --输出 #11说明/提示【数据范围】对于100 % 100\%100%的数据1 ≤ n ≤ 10 1\le n \le 101≤n≤10。题目翻译来自 NOCOW。USACO Training Section 1.2解题思路本题核心是矩阵变换模拟按优先级校验严格按照题目要求的转换序号顺序判断最优解。首先实现两个基础变换函数顺时针旋转90度、水平镜像翻转180度/270度旋转通过重复调用旋转函数实现组合变换为翻转后叠加旋转。按照序号1→2→3→4→5→6的优先级依次对原始矩阵执行对应变换每变换一次就与目标矩阵比对一旦匹配立即输出对应序号若所有变换都不匹配输出7代表无效转换。由于数据规模n ≤ 10 n≤10n≤10暴力模拟变换过程简洁高效完全满足题目要求。总结核心逻辑按题目指定的序号优先级模拟所有合法矩阵变换逐一匹配目标矩阵。关键操作实现旋转、翻转基础变换按序校验匹配结果。效率保障小数据暴力模拟代码简洁直观严格遵循题目规则。代码内容#includeiostream#includevector#includestringusingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll p1e97;constll INF1e18;constll M1e610;typedefvectorstringG;Gr90(constGg){intng.size();Gr(n,string(n, ));for(inti0;in;i)for(intj0;jn;j)r[j][n-1-i]g[i][j];returnr;}Gref(constGg){intng.size();G rg;for(inti0;in;i)for(intj0;jn/2;j)swap(r[i][j],r[i][n-1-j]);returnr;}booleq(constGa,constGb){intna.size();for(inti0;in;i)for(intj0;jn;j)if(a[i][j]!b[i][j])returnfalse;returntrue;}intmain(){intn;cinn;Ga(n),b(n);for(inti0;in;i)cina[i];for(inti0;in;i)cinb[i];G ra;for(inti1;i3;i){rr90(r);if(eq(r,b)){coutiendl;return0;}}G rfref(a);if(eq(rf,b)){cout4endl;return0;}rrf;for(inti1;i3;i){rr90(r);if(eq(r,b)){cout5endl;return0;}}if(eq(a,b)){cout6endl;return0;}cout7endl;return0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2581850.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!