题目链接: http://train.usaco.org/usacoprob2?a=f6bhTTJaVRy&S=transform

  题目大意: 给你一个初始矩阵和一个目的矩阵, 还有几种操作, 输出最小的操作号。

  解题思路: 有个坑就是不应该直接判等, 因为要输出最小的操作号, 有可能就是旋转一下也可以得到原图形那么输出的就不是6了, 然后就是怎么旋转这个矩形, 想了好久然后想错了.....不说了, 上代码吧。

  代码:

/*ID: wl199701PROG: transformLANG: C++*/
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <fstream>
#include <iterator>
#include <map>
#include <algorithm>
using namespace std;int n;
const int maxn = 15;struct node {char a[maxn][maxn];node() {memset(a, 0, sizeof(a));}
};
node st, des;node rnode() {node temp;for( int i = 1; i <= n; i++ ) {for( int j = 1; j <= n; j++ ) {cin >> temp.a[i][j];}}return temp;
}int ok( node n1, node n2 ) {for( int i = 1; i <= n; i++ ) {for( int j = 1; j <= n; j++ ) {if( n1.a[i][j] != n2.a[i][j] ) return 0;}}return 1;
}void debug( node nd ) {for( int i = 1; i <= n; i++) {for( int j = 1; j <= n; j++ ) {cout << nd.a[i][j];}cout << endl;}
}node change(node ori, int op) {node temp;for( int i = 1; i <= n; i++ ) {for( int j = 1; j <= n; j++ ) {switch (op) {case 1:temp.a[i][j] = ori.a[n-j+1][i];break;case 2:temp.a[i][j] = ori.a[n+1-i][n+1-j];break;case 3:temp.a[i][j] = ori.a[j][n-i+1];break;case 4:temp.a[i][j] = ori.a[i][n+1-j];break;}}}return temp;
}int main(){freopen("transform.in","r",stdin);freopen("transform.out","w",stdout);while( scanf( "%d", &n ) == 1 ) {node a, b;a = rnode();b = rnode();
//        node temp = change(a, 1);
//        debug(temp);int flag = 0;int i;for( i = 1; i <= 4; i++ ) {node temp;temp = change(a, i);if( ok( temp, b ) ) {flag = 1;cout << i << endl;break;}}if( !flag ) {node temp = change( a, 4 );for( int j = 1; j <= 3; j++ ) {node temp1 = change(temp, j);if( ok( temp1, b ) ) {flag = 1;cout << "5" << endl;break;}}}if( !flag ) {if( ok( a, b ) ) {cout << "6" << endl;continue;}}if( !flag ) {cout << "7" << endl;}}return 0;
}

View Code

  思考: 自己的抽象思维能力还是太弱, 自己的代码能力还是太弱, 所以说还要加强, 另外今天该找丁濛了。

转载于:https://www.cnblogs.com/FriskyPuppy/p/6950322.html

USACO SECTION 1.1.2 Transformations 爆搜相关推荐

  1. 容斥 + 爆搜打表 ---- 2020年南京icpc H.Harmonious Rectangle

    题目链接 题目大意: 就是给你一个二维平面{(x,y)∣1≤x≤n,1≤y≤m}\{(x,y)|1\leq x\leq n,1\leq y \leq m\}{(x,y)∣1≤x≤n,1≤y≤m},你现 ...

  2. 1103 Integer Factorization (30 分)【难度: 中 / 爆搜】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805364711604224 爆搜的做法,动态规划也可以做,有时间也一个动 ...

  3. 1096 Consecutive Factors (20 分)【难度: 一般 / 爆搜 数论】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688 注意测试点1: 72=2*3*3*4 我这里 ...

  4. UVA 2474 - Balloons in a Box 爆搜

    2474 - Balloons in a Box 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&a ...

  5. POJ 1166 The Clocks (爆搜 || 高斯消元)

    题目链接 题意: 输入提供9个钟表的位置(钟表的位置只能是0点.3点.6点.9点,分别用0.1.2.3)表示.而题目又提供了9的步骤表示可以用来调正钟的位置,例如1 ABDE表示此步可以在第一.二.四 ...

  6. hdu 5031 Lines 爆搜

    事实上嘞,这个线能够仅仅延伸一端 然后嘞,爆搜一次就能够 最后嘞,600-800ms过 本弱就是弱啊.你来打我呀-- #include<iostream> #include<cstr ...

  7. 【BZOJ-18532393】幸运数字Cirno的完美算数教室 容斥原理 + 爆搜 + 剪枝

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 1817  Solved: 665 [Submit][Statu ...

  8. 第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂)

    第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂) 题目来源:第46届icpc 沈阳 J-Luggage Lock 题意: 给出两个四位数的密码锁a和 ...

  9. 【ZSTU4210 2015年12月浙理工校赛 A】【DFS爆搜】孙壕请一盘青岛大虾呗 n个消费点m个购物点最后一位置恰好消费完

    4210: 孙壕请一盘青岛大虾呗 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 585  Solved: 249 Description 话说那一年z ...

最新文章

  1. 用indesign怎么更换名牌姓名_颚式破碎机如何拆卸?耐磨件怎么更换,可以用多久?答案都在这里...
  2. Android Wifi开发之WifiConfiguration
  3. 软工1816 · Alpha冲刺(9/10)
  4. oracle视图失效,ORACLE 11Gr2 V$ARCHIVED_LOG视图过期信息
  5. 获取php.ini配置信息,获得php所对应的配置文件(php.ini)信息
  6. Maven命令 install 和 package的区别
  7. Kylin启动异常:java.lang.outofMemoryError:Requested array size exceeds VM limit
  8. drupal7的目录结构及术语
  9. How to Plan My Life?
  10. java直接选择排序_Java排序大法-直接选择排序
  11. 【报告分享】巨量引擎2019娱乐算数白皮书.pdf(附下载链接)
  12. HDUOJ 不容易系列之(4)——考新郎
  13. java 查询sql_Java 中如何使用 SQL 查询文本
  14. tortoisegit pull 远程拉取代码,提示需要密码
  15. python 操作excel表格
  16. 无熟人难办事?- 闲聊设计模式-迪米特法则
  17. camera内存优化
  18. Java计算点的质心_java-矩阵的质心
  19. 关于“ VMware Workstation 16 此平台不支持虚拟化的Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT,是否继续?”的有关问题的总结解答
  20. linux系统看实际内存剩余,linux怎么看内存剩余

热门文章

  1. Spring Boot配置多数据源
  2. 字符串转换成java对象然后通过@RestController返回json对象
  3. JDK,JRE,JVM,JIT
  4. Windows下安装maven-nexus私服
  5. 三维重建6:绑架问题/SensorFusion/IMU+CV-小尺度SLAM
  6. STM32F407的硬件I2C
  7. SpringBoot自动化配置之一:SpringBoot内部的一些自动化配置原理
  8. [电子商务网站设计] 之 My Space
  9. 工作中让你提建议怎么办?
  10. Flink SQL Client中的session window图解