题目描述

给定3行3列的图像各像素点灰度值,给定最终图像,求最短、字典序最小的操作序列。

其中,可能的操作及对应字符有如下四种:

A:顺时针旋转90度;

B:逆时针旋转90度;

C:左右翻转;

D:上下翻转。

输入输出格式

输入格式:

一个矩阵,表示初始的图像。

一个矩阵,表示最终的图像。

输出格式:

最短、字典序最小的操作序列,保证长度不超过100000000,不保证有解(若长度不超过

100000000无解则输出“Poland cannot into space!!!”)。

输入输出样例

输入样例#1: 复制

3 4 5
6 7 8
1 2 3
1 2 3
6 7 8
3 4 5
输出样例#1: 复制

D
思路:最多顺时针转2次,逆时针转一次。上下反转一次,左右翻转一次。
然后就很好处理了,判断所有的情况的组合就好了。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int map[][],tmp[][];
int judge(){
for(int i=;i<=;i++)
for(int j=;j<=;j++)
if(map[i][j]!=tmp[i][j]) return false;
return true;
}
void zhuan(){
int bns[][]={};
bns[][]=tmp[][];bns[][]=tmp[][];bns[][]=tmp[][];
bns[][]=tmp[][];bns[][]=tmp[][];bns[][]=tmp[][];
bns[][]=tmp[][];bns[][]=tmp[][];bns[][]=tmp[][];
for(int i=;i<=;i++)
for(int j=;j<=;j++) tmp[i][j]=bns[i][j];
}
void swap1(){ for(int i=;i<=;i++) swap(tmp[i][],tmp[i][]); }
void swap2(){ for(int j=;j<=;j++) swap(tmp[][j],tmp[][j]); }
int main(){
for(int i=;i<=;i++)
for(int j=;j<=;j++) scanf("%d",&map[i][j]);
for(int i=;i<=;i++)
for(int j=;j<=;j++) scanf("%d",&tmp[i][j]);
zhuan(); if(judge()){ cout<<"A";return ; }
zhuan(); if(judge()){ cout<<"AA";return ; }
zhuan(); if(judge()){ cout<<"B";return ; } zhuan();
swap1(); if(judge()){ cout<<"C";return ; }
zhuan(); if(judge()){ cout<<"AC";return ; }
zhuan(); if(judge()){ cout<<"D";return ; }
zhuan(); if(judge()){ cout<<"AC";return ; } zhuan();
swap2(); if(judge()){ cout<<"D";return ; }
zhuan(); if(judge()){ cout<<"AD";return ; }
zhuan(); if(judge()){ cout<<"AB";return ; }
zhuan(); if(judge()){ cout<<"BD";return ; } zhuan();
swap1();swap2(); if(judge()){ cout<<"CD";return ; }
zhuan(); if(judge()){ cout<<"ACD";return ; }
zhuan(); if(judge()){ cout<<"AACD";return ;}
zhuan(); if(judge()){ cout<<"BCD";return ; }
cout<<"Poland cannot into space!!!";
}
 

洛谷 P2630 图像变换的更多相关文章

  1. 洛谷P2630 题解

    我先讲一下我的思路 将A,B,C,D四种操作用函数储存起来: 枚举所有可能出现的情况:A,B,C,D,AA,AB,AC,AD,BB,BC,BD,CC,CD,DD,ABC,ABD,ACD,BCD,ABC ...

  2. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  3. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  4. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  5. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  6. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  7. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

  8. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  9. 洛谷八月月赛Round1凄惨记

    个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...

随机推荐

  1. pthread_cleanup_push

    #define pthread_cleanup_push(func, val) \ { \ struct __darwin_pthread_handler_rec __handler; \ pthre ...

  2. sql中对日期的筛选

    #几个小时内的数据 DATE_SUB(NOW(), INTERVAL 5 HOUR) #今天 select * from 表名 where to_days(时间字段名) = to_days(now() ...

  3. const char *初值赋值以及文件读取

    #include<iostream> #include<fstream> #include<string> #include<cstring> usin ...

  4. 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)

    前一阵子我们介绍了如何启动Scrapy项目以及关于Scrapy爬虫的一些小技巧介绍,没来得及上车的小伙伴可以戳这些文章: 手把手教你如何新建scrapy爬虫框架的第一个项目(上) 手把手教你如何新建s ...

  5. LightOJ-1220 Mysterious Bacteria 唯一分解定理 带条件的最大公因数

    题目链接:https://cn.vjudge.net/problem/LightOJ-1220 题意 给x=y^p,问p最大多少 注意x可能负数 思路 唯一分解定理,求各素因数指数的GCD 注意负数的 ...

  6. codeforces 914 D Bash and a Tough Math Puzzle

    #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #i ...

  7. cobbler Ubuntu16.04 安装

    cobbler vim /etc/debmirror.conf      sed -i 's/@dists=\"sid\";/#@dists=\"sid\";/ ...

  8. AWS中国EC2 公网IP登录免pemKEY修改shh 配置文件

    个人使用记录 1:KEY 授权 chmod 400 VPN.pem 2:连接 ssh -i "VPN.pem" ubuntu@ec2-54-183-119-93.us-west-1 ...

  9. vuejs--递归组件(树型表格分享)

    前言    前段时间使用vue做了一套后台管理系统,其中使用最多就是递归组件,也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享. 递归组件    组件在它的模板内可以递归地调用 ...

  10. 集合框架(List和Set)

    一.概述 集合是一种可变数据项的容器,具有统一的父类接口Collection<E>(Map并没有继承之),与其子集合的关系例如以下 图.集合的特点是长度可变,能够存储多种类型的对象(不加泛 ...