USACO SECTION 1.1.2 Transformations 爆搜
题目链接: 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 爆搜相关推荐
- 容斥 + 爆搜打表 ---- 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},你现 ...
- 1103 Integer Factorization (30 分)【难度: 中 / 爆搜】
https://pintia.cn/problem-sets/994805342720868352/problems/994805364711604224 爆搜的做法,动态规划也可以做,有时间也一个动 ...
- 1096 Consecutive Factors (20 分)【难度: 一般 / 爆搜 数论】
https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688 注意测试点1: 72=2*3*3*4 我这里 ...
- UVA 2474 - Balloons in a Box 爆搜
2474 - Balloons in a Box 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&a ...
- POJ 1166 The Clocks (爆搜 || 高斯消元)
题目链接 题意: 输入提供9个钟表的位置(钟表的位置只能是0点.3点.6点.9点,分别用0.1.2.3)表示.而题目又提供了9的步骤表示可以用来调正钟的位置,例如1 ABDE表示此步可以在第一.二.四 ...
- hdu 5031 Lines 爆搜
事实上嘞,这个线能够仅仅延伸一端 然后嘞,爆搜一次就能够 最后嘞,600-800ms过 本弱就是弱啊.你来打我呀-- #include<iostream> #include<cstr ...
- 【BZOJ-18532393】幸运数字Cirno的完美算数教室 容斥原理 + 爆搜 + 剪枝
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MB Submit: 1817 Solved: 665 [Submit][Statu ...
- 第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂)
第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂) 题目来源:第46届icpc 沈阳 J-Luggage Lock 题意: 给出两个四位数的密码锁a和 ...
- 【ZSTU4210 2015年12月浙理工校赛 A】【DFS爆搜】孙壕请一盘青岛大虾呗 n个消费点m个购物点最后一位置恰好消费完
4210: 孙壕请一盘青岛大虾呗 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 585 Solved: 249 Description 话说那一年z ...
最新文章
- 用indesign怎么更换名牌姓名_颚式破碎机如何拆卸?耐磨件怎么更换,可以用多久?答案都在这里...
- Android Wifi开发之WifiConfiguration
- 软工1816 · Alpha冲刺(9/10)
- oracle视图失效,ORACLE 11Gr2 V$ARCHIVED_LOG视图过期信息
- 获取php.ini配置信息,获得php所对应的配置文件(php.ini)信息
- Maven命令 install 和 package的区别
- Kylin启动异常:java.lang.outofMemoryError:Requested array size exceeds VM limit
- drupal7的目录结构及术语
- How to Plan My Life?
- java直接选择排序_Java排序大法-直接选择排序
- 【报告分享】巨量引擎2019娱乐算数白皮书.pdf(附下载链接)
- HDUOJ 不容易系列之(4)——考新郎
- java 查询sql_Java 中如何使用 SQL 查询文本
- tortoisegit pull 远程拉取代码,提示需要密码
- python 操作excel表格
- 无熟人难办事?- 闲聊设计模式-迪米特法则
- camera内存优化
- Java计算点的质心_java-矩阵的质心
- 关于“ VMware Workstation 16 此平台不支持虚拟化的Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT,是否继续?”的有关问题的总结解答
- linux系统看实际内存剩余,linux怎么看内存剩余