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:图像旋转翻转变换的更多相关文章

  1. NOI题库刷题日志 (贪心篇题解)

    这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制:  1000ms  内存限制:  65536kB 描述 在一个平面上,如果有两个点( ...

  2. NOI题库 1768最大子矩阵 题解

    NOI题库 1768最大子矩阵  题解     总时间限制: 1000ms 内存限制: 65536kB   描述   已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大 ...

  3. NOI题库-小学奥赛QwQ

    今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...

  4. noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T11——T20

    T11 图像旋转 描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出. 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数.1 <= n <= 100,1 <= ...

  5. noi题库(noi.openjudge.cn) 1.7编程基础之字符串T31——T35

    T31 字符串P型编码 描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字符串str,请写出str的p型编码串.例如:字符串122344111可被描述为"1个1.2个 ...

  6. noi题库 1.7 字符串

    前九题 01:统计数字字符个数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一行字符,统计出其中数字字符的个数. 输入 一行字符串,总长度不超过255. 输出 输出为1行,输出字 ...

  7. noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30

    T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...

  8. NOI题库192 生日蛋糕

    192:生日蛋糕 总时间限制: 5000ms 内存限制: 65536kB 描述 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i ...

  9. noi 1.8 11图像旋转

    水题不解释 其实我偷懒了 直接输出,,,,,,, 个人QQ:757394026团队QQ:466373640个人博客:www.doubleq.winc++/noi/信息学奥数博客:http://www. ...

随机推荐

  1. Spring 一二事(2)

    静态工厂方法及实例工厂的使用: applicationContext.xml: <!-- factory-method 是指调用静态工厂方法 --> <bean id="h ...

  2. C#综合揭秘——细说多线程(下)

    引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发.其中委托的BeginInvoke方法以及回调函数最为常用.而 I/O线程可能 ...

  3. CSS3实现10种Loading效果

    昨晚用CSS3实现了几种常见的Loading效果,虽然很简单,但还是分享一下,顺便也当是做做笔记…… 第1种效果: 代码如下: <div class="loading"> ...

  4. mysql及php命名规范

    一.mysql命名规范 1.设计原则 1) 标准化和规范化数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但 Third Normal Form(3NF)通常被认为在性能.扩展性和数据完 ...

  5. 异常:NSException和NSAssert的简单使用

    //断言 - (void)NSAssert_Test:(NSString *)string{ NSAssert(string == nil, @"string == kong or nil& ...

  6. [4]Telerik Grid 简单使用方法

    1.columns <% Html.Telerik().Grid(Model) .Name("Orders") .Columns(columns => { //绑定列名 ...

  7. C#中事件的继承

    C#中的子类无法调用父类的事件,可以通过在父类中创建一个方法来调用父类的事件,而子类通过调用父类的方法来触发事件. class parent { protected string name; publ ...

  8. django字段设置null和blank的区别

    null 这个选项跟数据库有关. null=True的话,数据库中该字段是NULL,即允许空值:null=False(默认)的话,数据库中该字段是NOT NULL,即不允许空值. blank 这个选项 ...

  9. html 空格-有趣的试验

    首先,先给大家看一组demo <input /> <input type="submit" /> 展示效果: 为什么会出现空格呢?input不是行内元素吗? ...

  10. python selenuim使用代理的方式

    一.FireFox浏览器 myProxy = "60.195.250.55:80" proxy = Proxy({ 'proxyType': ProxyType.MANUAL, ' ...