洛谷 P2630 图像变换
题目描述
给定3行3列的图像各像素点灰度值,给定最终图像,求最短、字典序最小的操作序列。
其中,可能的操作及对应字符有如下四种:
A:顺时针旋转90度;
B:逆时针旋转90度;
C:左右翻转;
D:上下翻转。
输入输出格式
输入格式:
一个矩阵,表示初始的图像。
一个矩阵,表示最终的图像。
输出格式:
最短、字典序最小的操作序列,保证长度不超过100000000,不保证有解(若长度不超过
100000000无解则输出“Poland cannot into space!!!”)。
输入输出样例
3 4 5
6 7 8
1 2 3
1 2 3
6 7 8
3 4 5
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 图像变换的更多相关文章
- 洛谷P2630 题解
我先讲一下我的思路 将A,B,C,D四种操作用函数储存起来: 枚举所有可能出现的情况:A,B,C,D,AA,AB,AC,AD,BB,BC,BD,CC,CD,DD,ABC,ABD,ACD,BCD,ABC ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- 洛谷八月月赛Round1凄惨记
个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...
随机推荐
- crontab中使用sudo命令的注意
在使用crontab执行非root用户定时任务时,有时候shell脚本里需要用到sudo以获得root权限: 如: VIP_CARD=eth0 VIP_ADDR=192.168.4.119 NETMA ...
- 【原创】查询占CPU高的oracle进程
1:首先使用TOP命令传到占用CPU高的SPID号 PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND3575 oracle 1 12 ...
- C# 分隔字符串成为字符串数组的方法(保留分隔符)
要求如下: source string: mmmmmmynameismickeym separator: m result string []: {"m", "m&quo ...
- h5实现 微信的授权登录
本文重点 判断是不是微信环境 localstorage设置一个值 微信授权登录 获取一个时间戳 new Date().getTime() const wx = (function () { retur ...
- (二)React简介
React简介 2-1: React v16 (React Fiber) React比Vue更灵活 Vue更简单 2-2 开发环境搭建 如何开始:(两种方式) 1.传统方式script标签引入.js文 ...
- python_if_else,while,break
#密码密文展示,getpass在pycharm中无法使用,只能在python中使用import getpass #登录判断'''raw_name="Monica"raw_passw ...
- 让div垂直居中
参考链接:https://www.cnblogs.com/softwarefang/p/6095806.html 以前我的方法总是比较粗暴,纯粹通过margin来实现,这个方法的缺点不仅在于需要多次微 ...
- The Zen of Python, by Tim Peters
Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Comp ...
- Mac安装软件时,提示文件已损坏,需要移动到废纸篓的解决方法
1.修改系统偏好设置,安全性与隐私-->将“允许从以下位置下载的应用” ☑️任何来源. 2. mac10.12以上的系统一般没有“任何来源”这个选项,需打开terminnal终端,输入 sudo ...
- 【BZOJ 1293】[SCOI2009]生日礼物
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然的滑动窗口题. (尺取法 如果l..i这一段已经有k种珍珠了. 那么就尝试把l++; (即把l这个影响尝试去掉一下 如果不足k种 ...