transform-section1.2
来源:互联网 发布:淘宝评价管理怎么删除 编辑:程序博客网 时间:2024/06/06 04:50
题目大意
给出七种图形变换方式,求出从原图(一个N*N的正方形)到变换后的图对应的变换方式。 1:转90度:图案按顺时针转90度。 2:转180度:图案按顺时针转180度。 3:转270度:图案按顺时针转270度。 4:反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。 5:组合:图案在水平方向翻转,然后再按照1到3之间的一种再次转换。 6:不改变:原图案不改变。 7:无效转换:无法用以上方法得到新图案。如果有多种可用的转换方法,请选择序号最小的那个。只使用1~7中的一个步骤来完成这次转换。
输入格式
line 1:N(正方形的阶数)line 2-N+1:N行每行N个字符(不是“@”就是“-”);表示转换前的正方形line N+2-2*N+1:N行每行N个字符(不是“@”就是“-”);表示转换后的正方形
输出格式
1-7的一个数字
样例输入
3@-@---@@-@-@@----@
样例输出
1
题解
将原正方形与变换后正方形分别保存在数组中,分别对原正方形实施1-7的操作,依次与变换后正方形对比,一样则输出对应的变换方法。
代码
#include<stdio.h>int main(){int N,formal[10][10]={0},next[10][10]={0},i,j,temp1[10][10]={0},temp2[10][10]={0};int temp3[10][10]={0},temp4[10][10]={0},temp51[10][10]={0},temp52[10][10]={0},temp53[10][10]={0},flag=0;char a[10][10],b[10][10];scanf("%d",&N);for(i=0;i<N;i++) scanf("%s",a[i]);for(i=0;i<N;i++) scanf("%s",b[i]);for(i=0;i<N;i++) for(j=0;j<N;j++) { if(a[i][j]=='@') formal[i][j]=1; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(b[i][j]=='@') next[i][j]=1; }//1 flag=1;for(i=0;i<N;i++) for(j=0;j<N;j++) { temp1[j][N-1-i]=formal[i][j]; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(temp1[i][j]!=next[i][j]) { flag=0; break; } } if(flag==1) { printf("1\n"); return 0; }//2 flag=1;for(i=0;i<N;i++) for(j=0;j<N;j++) { temp2[j][N-1-i]=temp1[i][j]; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(temp2[i][j]!=next[i][j]) { flag=0; break; } }if(flag==1) { printf("2\n"); return 0; }//3flag=1;for(i=0;i<N;i++) for(j=0;j<N;j++) { temp3[j][N-1-i]=temp2[i][j]; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(temp3[i][j]!=next[i][j]) { flag=0; break; } }if(flag==1) { printf("3\n"); return 0; }//4flag=1;for(i=0;i<N;i++) for(j=0;j<N;j++) { temp4[i][j]=formal[i][N-j-1]; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(temp4[i][j]!=next[i][j]) { flag=0; break; } }if(flag==1) { printf("4\n"); return 0; }//51 flag=1;for(i=0;i<N;i++) for(j=0;j<N;j++) { temp51[j][N-1-i]=temp4[i][j]; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(temp51[i][j]!=next[i][j]) { flag=0; break; } }if(flag==1) { printf("5\n"); return 0; }//52 flag=1;for(i=0;i<N;i++) for(j=0;j<N;j++) { temp52[j][N-1-i]=temp51[i][j]; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(temp52[i][j]!=next[i][j]) { flag=0; break; } }if(flag==1) { printf("5\n"); return 0; }//53 flag=1;for(i=0;i<N;i++) for(j=0;j<N;j++) { temp53[j][N-1-i]=temp52[i][j]; }for(i=0;i<N;i++) for(j=0;j<N;j++) { if(temp53[i][j]!=next[i][j]) { flag=0; break; } }if(flag==1) { printf("5\n"); return 0; }//6for(i=0;i<N;i++) for(j=0;j<N;j++) { if(formal[i][j]!=next[i][j]) { flag=0; break; } }if(flag==1) { printf("6\n"); return 0; }//7printf("7\n");return 0;}
阅读全文
0 0
- transform-section1.2
- USACO-Section1.2 transform[枚举]
- USACO-section1.2.2 transform
- USACO Section1.2 Transformations
- milk2-section1.2
- namenum-section1.2
- USACO-Section1.2 Transformations
- usaco section1.2 Transformations
- USACO Section1.2 Transformations
- USCAO-Section1.2 Transformations
- USCAO-Section1.2 Transformations
- USACO-Section1.2 Transformations
- palsquare-section1.2
- dualpal-section1.2
- USACO section1.2 Palindromic Squares
- USCAO section1.2 Palindromic Squares
- USACO section1.2 Dual Palindromes
- USCAO-Section1.2 Milking Cows
- Video 实践运用
- 模块-time和date time
- 常见问题梳理
- JAVA的23种设计模式---适配器模式
- HBase安装以及多个HMaster配置步骤
- transform-section1.2
- poi 导入 空值处理
- Java加密与解密学习记录02-Base64
- Matlab基础知识
- 原生JavaScript实现Ajax(一):XMLHttpRequest
- 学习maven笔记
- Python关于文件的操作
- Unity3D爆炸力
- 数组排序