题目描述

给定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. crontab中使用sudo命令的注意

    在使用crontab执行非root用户定时任务时,有时候shell脚本里需要用到sudo以获得root权限: 如: VIP_CARD=eth0 VIP_ADDR=192.168.4.119 NETMA ...

  2. 【原创】查询占CPU高的oracle进程

    1:首先使用TOP命令传到占用CPU高的SPID号 PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND3575 oracle 1 12 ...

  3. C# 分隔字符串成为字符串数组的方法(保留分隔符)

    要求如下: source string: mmmmmmynameismickeym separator: m result string []: {"m", "m&quo ...

  4. h5实现 微信的授权登录

    本文重点 判断是不是微信环境 localstorage设置一个值 微信授权登录 获取一个时间戳 new Date().getTime() const wx = (function () { retur ...

  5. (二)React简介

    React简介 2-1: React v16 (React Fiber) React比Vue更灵活 Vue更简单 2-2 开发环境搭建 如何开始:(两种方式) 1.传统方式script标签引入.js文 ...

  6. python_if_else,while,break

    #密码密文展示,getpass在pycharm中无法使用,只能在python中使用import getpass #登录判断'''raw_name="Monica"raw_passw ...

  7. 让div垂直居中

    参考链接:https://www.cnblogs.com/softwarefang/p/6095806.html 以前我的方法总是比较粗暴,纯粹通过margin来实现,这个方法的缺点不仅在于需要多次微 ...

  8. The Zen of Python, by Tim Peters

    Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Comp ...

  9. Mac安装软件时,提示文件已损坏,需要移动到废纸篓的解决方法

    1.修改系统偏好设置,安全性与隐私-->将“允许从以下位置下载的应用” ☑️任何来源. 2. mac10.12以上的系统一般没有“任何来源”这个选项,需打开terminnal终端,输入 sudo ...

  10. 【BZOJ 1293】[SCOI2009]生日礼物

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然的滑动窗口题. (尺取法 如果l..i这一段已经有k种珍珠了. 那么就尝试把l++; (即把l这个影响尝试去掉一下 如果不足k种 ...