NOI题库 09:图像旋转翻转变换
NOI题库开始的题,也是略水,当然也是大水,所以彼此彼此
09:图像旋转翻转变换
总时间限制: 1000ms 内存限制: 65536kB
描述
给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。
其中,可能的操作及对应字符有如下四种:
A:顺时针旋转90度;
B:逆时针旋转90度;
C:左右翻转;
D:上下翻转。
输入
第一行包含两个正整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。
接下来m行,每行n个整数,表示图像中每个像素点的灰度值,相邻两个数之间用单个空格隔开。灰度值范围在0到255之间。
接下来一行,包含由A、B、C、D组成的字符串s,表示需要按顺序执行的操作序列。s的长度在1到100之间。
输出
m’行,每行包含n’个整数,为最终图像各像素点的灰度值。其中m’为最终图像的行数,n’为最终图像的列数。相邻两个整数之间用单个空格隔开。
样例输入
2 3
10 0 10
100 100 10
AC
样例输出
10 100
0 100
10 10
我只想吐槽,由于最近变量全都设为全局变量了,这次傻逼了,忘了把过程中的变量在过程中重新定义,使得多调试了好多次。。以此为鉴!
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int d[110][110]={0},d1[110][110]={0};//d1位控制变换用的
int n,m;
int i,j;
char work[200];
int k;
void A()//操作A
{
int i,j;
memset(d,0,sizeof(d));
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
d[j][m-i+1]=d1[i][j];
int temp=m;
m=n;
n=temp;
memset(d1,0,sizeof(d1));
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
d1[i][j]=d[i][j];
//cout<<"A is right"<<endl;
}
void B()//操作B,逆时针旋转90°就相当于顺时针旋转270°
{
A();
A();
A();
//cout<<"B is right"<<endl;
}
void C()//操作C
{
int i,j;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
d[i][j]=d1[i][n-j+1];
memset(d1,0,sizeof(d1));
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
d1[i][j]=d[i][j];
//cout<<"C is right"<<endl;
}
void D()//操作D
{
int i,j;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
d[i][j]=d1[m-i+1][j];
memset(d1,0,sizeof(d1));
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
d1[i][j]=d[i][j];
//cout<<"D is right"<<endl;
}
int main()
{
scanf("%d%d",&m,&n);
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
{
scanf("%d",&d[i][j]);
d1[i][j]=d[i][j];
}
cin>>work;
int k=strlen(work);
//cout<<k;
for (i=0;i<k;i++)
{
if (work[i]=='A')
A();
if (work[i]=='B')
B();
if (work[i]=='C')
C();
if (work[i]=='D')
D();
}
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
printf("%d ",d[i][j]);
printf("\n");
}
return 0;
}
NOI题库 09:图像旋转翻转变换的更多相关文章
- NOI题库刷题日志 (贪心篇题解)
这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个平面上,如果有两个点( ...
- NOI题库 1768最大子矩阵 题解
NOI题库 1768最大子矩阵 题解 总时间限制: 1000ms 内存限制: 65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大 ...
- NOI题库-小学奥赛QwQ
今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...
- noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T11——T20
T11 图像旋转 描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出. 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数.1 <= n <= 100,1 <= ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T31——T35
T31 字符串P型编码 描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字符串str,请写出str的p型编码串.例如:字符串122344111可被描述为"1个1.2个 ...
- noi题库 1.7 字符串
前九题 01:统计数字字符个数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一行字符,统计出其中数字字符的个数. 输入 一行字符串,总长度不超过255. 输出 输出为1行,输出字 ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30
T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...
- NOI题库192 生日蛋糕
192:生日蛋糕 总时间限制: 5000ms 内存限制: 65536kB 描述 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i ...
- noi 1.8 11图像旋转
水题不解释 其实我偷懒了 直接输出,,,,,,, 个人QQ:757394026团队QQ:466373640个人博客:www.doubleq.winc++/noi/信息学奥数博客:http://www. ...
随机推荐
- <a href="javascript:void(0)" onclick="ff()" ></a> 用法解析
javascript:void(0) 仅仅表示一个死链接 如果是个# javascript:void(#),就会出现跳到顶部的情况,搜集了一下解决方法 1:<a href="####& ...
- Java学习----Java概述
一.常用DOS命令 d: 盘符切换 dir(directory) 列出当前目录下的文件以及文件夹 md (make directory) 创建目录 rd (remove director ...
- DataGridView 行、列的隐藏和删除
) 行.列的隐藏 [VB.NET] ' DataGridView1的第一列隐藏 DataGridView1.Columns(0).Visible = False ' DataGridView1的第一行 ...
- mysql客户端授权后连接失败问题
在本地(192.168.1.152)部署好mysql环境,授权远程客户机192.168.1.%连接本机的mysql,在iptables防火墙也已开通3306端口.如下:mysql> select ...
- 16Spring_AOP编程(AspectJ)_最终通知
- 呵呵!手把手带你在 IIS 上运行 Python(转)
原文:http://blog.csdn.net/yangzhencheng_001/article/details/40342449 公司的网站让我头痛死了.在众多前辈高手的带领下,一大堆的 CMD ...
- RDLC系列之一 简单示例
参照文章:http://www.cnblogs.com/waxdoll/archive/2006/07/24/458409.html#!comments 一.效果图
- 整理MAC下Eclipse的常用快捷键
整理Eclipse常用快捷键 开发环境切换到Mac下后原来Window下的快捷键很大一部分是不相容的,习惯了快捷键的生活忽然哪天快捷键不起作用了,跟着的就是开发效率明显降低,频繁录入错误的快捷键让Ec ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值
{"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句 B: ...
- 2016动作短片《全境封锁:特工起源》HD720P.英语中字
导演: 德文·格雷厄姆主演: Matt Lynch / Sasha Andreev / Amanda Day类型: 动作 / 短片制片国家/地区: 美国语言: 英语上映日期: 2016-01-19片长 ...