codevs1387
题目描述 Description
一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始 图案按照以下列转换方法转换成新图案的最小方式: #1:转90度:图案按顺时针转90度。 #2:转180度:图案按顺时针转180度。 #3:转270度:图案按顺时针转270度。 #4:反射:图案在水平方向翻转(形成原图案的镜像)。 #5:组合:图案在水平方向翻转,然后按照#1-#3之一转换。 #6:不改变:原图案不改变。 #7:无效转换:无法用以上方法得到新图案。 如果有多种可用的转换方法,请选择序号最小的那个。
第一行: | 单独的一个整数N。 |
第二行到第N+1行: | N行每行N个字符(不是“@”就是“-”);这是转换前的正方形。 |
第N+2行到第2*N+1行: | N行每行N个字符(不是“@”就是“-”);这是转换后的正方形。 |
单独的一行包括1到7之间的一个数字(在上文已描述)表明需要将转换前的正方形变为转换后的正方形的 转换方法。
3 @-@ --- @@- @-@ @-- --@
1
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath> using namespace std; char s1[][];
char s2[][];
char s3[][];
char s4[][]; int main()
{
int n,i,j;
cin>>n;
for(i = ;i<=n;i++)
scanf("%s",s1[i]+);
for(i = ;i<=n;i++)
scanf("%s",s2[i]+);
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
{
s3[j][n-i+] = s1[i][j];
}
bool b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s3[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
{
s4[j][n-i+] = s3[i][j];
}
b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s4[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
{
s3[j][n-i+] = s4[i][j];
}
b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s3[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
for(i = ;i<=n;i++)
{
for(j = ;j<=n;j++)
{
s3[i][n-j+] = s1[i][j];
}
}
b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s3[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
{
s4[j][n-i+] = s3[i][j];
}
b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s4[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
{
s3[j][n-i+] = s4[i][j];
}
b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s3[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
{
s4[j][n-i+] = s3[i][j];
}
b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s4[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
b = ;
for(i = ;i<=n;i++)
for(j = ;j<=n;j++)
if(s1[i][j]!=s2[i][j]) b = ;
if(b)
{
cout<<<<endl;
return ;
}
cout<<<<endl;
return ;
}
codevs1387的更多相关文章
随机推荐
- <audio>使用2
1.属性测试 <!--显示控件--> <audio src="../images/wind.mp3" id="audioOne" contro ...
- UIView--UIImageView
1.contentMode view.contentMode = UIViewContentModeScaleAspectFill; 2.是否实现触摸 3.简单实现动画 图片的名字为campFire0 ...
- C#中精确计时的一点收获
以下所有代码运行环境:Windows 2003, Intel(R) Core(TM) 2 Duo CPU E8400 @ 3.00GHz 2.99GHz,2.96GB内存 根据综合网上的一些文章,精 ...
- node学习 process笔记
如果你是node大神好了可以关闭此页面了因为接下来游览会白白浪费你许多时间,最近一直学习node.js今晚看到 alsotang 在 github上的node教程 https://github.com ...
- C# 调用c++报错可能性分析
1.在调用之前,可以用工具(Dependency)检测下c++库所依赖的文件,看是否有错误.如果有错误,请先下补充所需运行环境. 2.如果c++ 函数 形参需要C#传入结构体,可如下: [Struct ...
- spring的IOC,DI及案例详解
一:spring的基本特征 Spring是一个非常活跃的开源框架:它是一个基于Core来架构多层JavaEE系统的框架,它的主要目的是简化企业开发.Spring以一种非侵入式的方式来管理你的代码,Sp ...
- Android进程
android进程等级 1.前台进程 2.可视进程 3.服务进程 4.后台进程 5.空进程 让应用退出方式 finish();让应用成为空进程 Process.killProcess();杀进程 sy ...
- has leaked ServiceConnection com.baidu.location.LocationClient
02-06 05:01:52.806: E/ActivityThread(1120): Activity com.project.xxxActivity $1@45fc5af8 that was or ...
- python核心编程-习题-第二章
PS:PDF在线地址:http://bcmi.sjtu.edu.cn/~zhaohai/ptm2012/data/Python-kernel.programming.v2.pdf 2-1 变量,pr ...
- 如何测试一个U盘
功能测试: 1 在windows xp比较流行的操作系统上是否可以识别(装了驱动后是否可以) 2 在电脑上显示的盘符是否正确 3 总空间,可用空间,已用空间是否显示正确 4 u盘中是否可以拷入各种格式 ...