挺有趣的一道题,呵呵,不算难

  1. /*
  2. ID: jusonal1
  3. PROG: transform
  4. LANG: C++
  5. */
  6. #include <iostream>
  7. #include <fstream>
  8. #include <string>
  9. #include <cstdio>
  10. #include <algorithm>
  11. #include <map>
  12. #include <cstring>
  13. using namespace std;
  14. const int maxn = 15;
  15. int n;
  16. struct MP{
  17. char mp[maxn][maxn];
  18. };
  19. MP orign_map;
  20. MP then_map;
  21. MP new_map;
  22. bool pattern_1(const MP a){
  23. for(int i = 1;i <= n;++i)
  24. for(int j = 1;j <= n;++j)
  25. if(then_map.mp[i][j] != a.mp[n-j+1][i])
  26. return false;
  27. return true;
  28. }
  29. bool pattern_2(const MP a){
  30. for(int i = 1;i <= n;++i)
  31. for(int j = 1;j <= n;++j)
  32. if(then_map.mp[i][j] != a.mp[n-i+1][n-j+1])
  33. return false;
  34. return true;
  35. }
  36. bool pattern_3(MP a){
  37. for(int i = 1;i <= n;++i)
  38. for(int j = 1;j <= n;++j)
  39. if(then_map.mp[i][j] != a.mp[j][n-i+1])
  40. return false;
  41. return true;
  42. }
  43. bool pattern_4(MP a){
  44. for(int i = 1;i <= n;++i)
  45. for(int j = 1;j <= n;++j)
  46. if(then_map.mp[i][j] != a.mp[i][n-j+1])
  47. return false;
  48. return true;
  49. }
  50. bool pattern_5(MP a){
  51. if(pattern_1(a)) return true;
  52. if(pattern_2(a)) return true;
  53. if(pattern_3(a)) return true;
  54. return false;
  55. }
  56. bool pattern_6(MP a){
  57. for(int i = 1;i <= n;++i)
  58. for(int j = 1;j <= n;++j)
  59. if(a.mp[i][j] != then_map.mp[i][j]) return false;
  60. return true;
  61. }
  62. void print(){
  63. for(int i = 1;i <= n;++i){
  64. for(int j = 1;j <= n;++j)
  65. printf("%c",new_map.mp[i][j]);
  66. puts("");
  67. }
  68. puts("");
  69. }
  70. void getmap(){
  71. for(int i = 1;i <= n;++i)
  72. for(int j = 1;j <= n;++j)
  73. scanf(" %c",&orign_map.mp[i][j]);
  74. for(int i = 1;i <= n;++i)
  75. for(int j = 1;j <= n;++j)
  76. scanf(" %c",&then_map.mp[i][j]);
  77. return ;
  78. }
  79. int main () {
  80. freopen("transform.in","r",stdin);
  81. freopen("transform.out","w",stdout);
  82. scanf("%d",&n);
  83. getmap();
  84. MP new_map;
  85. for(int i = 1;i <= n;++i)
  86. for(int j = 1;j <= n;++j)
  87. new_map.mp[i][j] = orign_map.mp[i][n-j+1];
  88. if(pattern_1(orign_map)) puts("1");
  89. else if(pattern_2(orign_map)) puts("2");
  90. else if(pattern_3(orign_map)) puts("3");
  91. else if(pattern_4(orign_map)) puts("4");
  92. else if(pattern_5(new_map)) puts("5");
  93. else if(pattern_6(orign_map))puts("6");
  94. else puts("7");
  95. return 0;
  96. }

USACO Section 1.2PROB Transformations的更多相关文章

  1. USACO Section 1.2 Transformations 解题报告

    题目 题目描述 一块 N x N正方形的黑白瓦片的图案要被转换成新的正方形图案. 写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 转 90 度:图案按顺时针转 90 度. 转 1 ...

  2. USACO Section 1.2PROB Miking Cows

    贪心做过去,先对每个时间的左边点进行排序,然后乱搞,当然线段树也可以做 /* ID: jusonal1 PROG: milk2 LANG: C++ */ #include <iostream&g ...

  3. USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)

    usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...

  4. USACO Section 3.3: Riding the Fences

    典型的找欧拉路径的题.先贴下USACO上找欧拉路径的法子: Pick a starting node and recurse on that node. At each step: If the no ...

  5. USACO Section 3.3 Camlot(BFS)

    BFS.先算出棋盘上每个点到各个点knight需要的步数:然后枚举所有点,其中再枚举king是自己到的还是knight带它去的(假如是knight带它的,枚举king周围的2格(网上都这么说,似乎是个 ...

  6. [IOI1996] USACO Section 5.3 Network of Schools(强连通分量)

    nocow上的题解很好. http://www.nocow.cn/index.php/USACO/schlnet 如何求强连通分量呢?对于此题,可以直接先用floyd,然后再判断. --------- ...

  7. USACO Section 5.3 Big Barn(dp)

    USACO前面好像有类似的题目..dp(i,j)=min(dp(i+1,j),dp(i+1,j+1),dp(i,j+1))+1  (坐标(i,j)处无tree;有tree自然dp(i,j)=0) .d ...

  8. USACO Section 1.3 Prime Cryptarithm 解题报告

    题目 题目描述 牛式的定义,我们首先需要看下面这个算式结构: * * * x * * ------- * * * <-- partial product 1 * * * <-- parti ...

  9. USACO Section 1.1 Your Ride Is Here 解题报告

    题目 问题描述 将字符串转变为数字,字母A对应的值为1,依次对应,字母Z对应的值为26.现在有一个字符串,将其中的每个字符转变为数字之后进行累乘,最终的结果对47求余数. 题目给你两个字符串,其中的字 ...

随机推荐

  1. 笔试算法题(22):二分法求旋转数组最小值 & 骰子值概率

    出题:将一个数组最开始的k个(K小于数组大小N)元素照搬到数组末尾,我们称之为数组的旋转:现在有一个已经排序的数组的一个旋转,要求输出旋转数组中的最小元素,且时间复杂度小于O(N): 分析: 时间复杂 ...

  2. python装饰器、迭代器、生成器

    装饰器:为已存在的函数或者或者对象添加额外的功能 def wrapper(f): #装饰器函数,f是被装饰的函数 def inner(*args,**kwargs): '''在被装饰函数之前要做的事' ...

  3. PHP实现QQ第三方登录的方法

    前言: PHP实现QQ快速登录,罗列了三种方法 方法一:面向过程,回调地址和首次触发登录写到了一个方法页面[因为有了if做判断], 方法二,三:面向对象 1.先调用登录方法,向腾讯发送请求,2.腾讯携 ...

  4. Matlab学习笔记(五)

    三.矩阵运算 (一)矩阵函数和特殊矩阵 常见的矩阵处理函数 表3-1    常见的矩阵函数 函数 说明 /或\ 矩阵除法中的左除或右除,可以用于求解线性方程组 accumarray(ind,val) ...

  5. private关键字

    Student.java /* * 学生类 * * 通过对象直接访问成员变量,会存在数据安全问题 * 这个时候,我们就想能不能不让外界对象直接访问成员变量呢? * 答案:能 * 如何实现呢? * pr ...

  6. AutoMapper 使用总结1

    初识AutoMapper 在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层.业务逻辑层.服务层.数据访问层.层与层访问需要数据载体,也就是类.如果多层通用一个类,一则会暴露出每层的字 ...

  7. Thawte SSL Web Server

      Thawte SSL Web Server ,需要验证域名所有权和申请单位信息,属于企业验证(OV)型SSL证书,提供40位/56位/128位,最高支持256位的自适应加密.被2048位的根证书签 ...

  8. 【03】emmet系列之CSS语法

    [01]emmet系列之基础介绍 [02]emmet系列之HTML语法 [03]emmet系列之CSS语法 [04]emmet系列之编辑器 [05]emmet系列之各种缩写   单位: 有几个常用值别 ...

  9. python +selenium的 里面还自带case 然后也有生成报告的模板

    https://github.com/huahuijay/python-selenium2这个就是 python +selenium的  里面还自带case  然后也有生成报告的模板 

  10. python-gzip解压缩(实验吧SOS)

    本题看着很简单,就是在弄出来的老是乱码,看了pcat的wp还是不行,下面的评论说可能是python版本问题,改版本太麻烦,试了一下先gzip解压,得到的文件在打开就不是乱码了,代码如下: # -*- ...