NOI题库 09:图像旋转翻转变换
2015-11-01 17:24
295 查看
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; }
相关文章推荐
- UML初识
- java同步器之F4
- 算法分析—渐近符号
- c3p0,Druid,Tomcat Jdbc Pool,dbcp2,proxoo数据源性能比较
- 2015ACM/ICPC亚洲区长春站-重现赛(感谢东北师大)HDU5538 House Building
- NOI题库 09:图像旋转翻转变换
- 定向获取固定数据
- c3p0,Druid,Tomcat Jdbc Pool,dbcp2,proxoo数据源性能比较
- BestCoder Round #61 (div.2)(hdu5522,hdu5523,hdu5524,hdu5525(数论:费马小定理))
- android 基础的小问题1(Adapter的数据无法刷新)
- 工程目录结构、adb命令
- CentOS下MySQL的安装和修改用户密码
- spring boot实战(第十三篇)自动配置原理分析
- 23_java多线程
- Linux第七次实验笔记
- PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
- 摘录
- 解决https需要验证问题
- JavaPPT课后作业信1403-2程怀远20142897 11月2号
- hdoj In Action 3339 (dijiks++01背包) 好题