题目要求

P1205题目链接

分析

每一种变换都很麻烦,不好推,我选择把每一个封装成单独的函数,并且为了变换5对变换1、2、3的复用而调整了参数和返回值。

具体的每种变换可以看具体的函数实现,很清楚的。

怎么推我也不太会,我觉得就可以表下标[i,j][i,j][i,j],找规律,然后疯狂debug……我找了大概一个半小时……

AC代码(Java语言描述)

import java.util.Arrays;
import java.util.Scanner;public class Main {private static char[][] chars1, chars2;private static int num;private static boolean judge1(char[][] chars1) {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[j][num-i-1] = chars1[i][j];}}return Arrays.deepEquals(newChars, chars2);}private static boolean judge2(char[][] chars1) {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[num-i-1][num-j-1] = chars1[i][j];}}return Arrays.deepEquals(newChars, chars2);}private static boolean judge3(char[][] chars1) {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[num-j-1][i] = chars1[i][j];}}return Arrays.deepEquals(newChars, chars2);}private static char[][] generateJudge4Arr() {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[i][num-j-1] = chars1[i][j];}}return newChars;}private static boolean judge4() {char[][] newChars = generateJudge4Arr();return Arrays.deepEquals(newChars, chars2);}private static boolean judge5() {char[][] newChars = generateJudge4Arr();return judge1(newChars) || judge2(newChars) || judge3(newChars);}private static boolean judge6() {return Arrays.deepEquals(chars1, chars2);}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);num = Integer.parseInt(scanner.nextLine());chars1 = new char[num][num];chars2 = new char[num][num];for (int i = 0; i < num; i++) {char[] tempChars = scanner.nextLine().toCharArray();System.arraycopy(tempChars, 0, chars1[i], 0, num);}for (int i = 0; i < num; i++) {char[] tempChars = scanner.nextLine().toCharArray();System.arraycopy(tempChars, 0, chars2[i], 0, num);}scanner.close();if (judge1(chars1)) {System.out.println(1);} else if (judge2(chars1)) {System.out.println(2);} else if (judge3(chars1)) {System.out.println(3);} else if (judge4()) {System.out.println(4);} else if (judge5()) {System.out.println(5);} else if (judge6()) {System.out.println(6);} else {System.out.println(7);}}}

图形的花样翻转(洛谷P1205题题解,Java语言描述)相关推荐

  1. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  2. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  3. 令人迷惑的硬币翻转(洛谷P1146题题解,Java语言描述)

    题目要求 P1146题目链接 分析 这题做起来真是人间迷惑行为-- 这题的题意另管理员dalao都吐槽过,简直了,不过后来好像改了改表述-- 我们来看一下这个题: 翻N-1枚硬币,就是每次有一枚硬币没 ...

  4. N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)

    题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...

  5. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  6. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  7. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  8. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

  9. 贪心策略摘果子(洛谷P1478题题解,Java语言描述)

    题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...

最新文章

  1. asp.net实现图片在线上传并在线裁剪
  2. liunx常用命令笔记
  3. 天池 在线编程 双向取数(博弈DP)
  4. input失去焦点验证格式_vue2多文本框的表单校验(3)-失去焦点触发校验
  5. 《scikit-learn》朴素贝叶斯
  6. StringBuffer练习
  7. 开发者硬核福利!极光可信数据云来了
  8. UIWebView与JS的深度交互
  9. Ubuntu 突然不然联网解决方法
  10. 笛卡尔积生成商品SKU
  11. 东京喰种语录(节选)
  12. 万维网联盟W3C推荐Web性能API
  13. 维度诅咒_维度的诅咒减去行话的诅咒
  14. 京东秒杀技巧有哪些(京东秒杀技巧大全)
  15. 使用IDEA搭建SpringCloud项目
  16. 谷歌添加JSON格式化工具 jsonhandler
  17. pycharm在ubuntu中不能输入中文的问题
  18. 女性计算机科学家比例,为何女性IT工作者占比低
  19. 100囚犯问题、100囚犯问题加强版与选择公理(下)
  20. 基于java的家庭财务管理系统_基于JAVA的家庭财务管理系统的设计与实现.doc

热门文章

  1. vue-cli脚手架中webpack配置基础文件详解
  2. hdu 2489 Minimal Ratio Tree
  3. [Grooy]List, Map and Range习题
  4. 解决echart中:Cannot read property ‘queryComponents‘ of undefined
  5. 服务器proc文件,特殊文件系统proc
  6. 计算机基本运行方式,我今天才知道的电脑运行方式,你知道吗?
  7. java 异或_Javase第一部分:操作符的使用(按位异或运算)(含视频讲解)
  8. android 滚动列表框,建立滚动列表框
  9. 单账户登录踢人 php,踢人下线
  10. matlab检测串口数据帧头,MATLAB 串口读取姿态数据及GUI实时动态显示设计