USACO 1.2.2 Transformations

原创 2007年09月22日 23:27:00
/*
 PROG: transform
 LANG: C++
*/

#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;
ifstream fin("transform.in");
ofstream fout("transform.out");
int
n;
char
a[11][11],b[11][11];
void
input()
{

fin>>n;
 for
(int i=1;i<=n;i++)
for
(int j=1;j<=n;j++)
fin>>a[i][j];
for
(int i=1;i<=n;i++)
for
(int j=1;j<=n;j++)
fin>>b[i][j];
}

bool
ok(char p[][11])
{

for
(int i=1;i<=n;i++)
for
(int j=1;j<=n;j++)
if
(p[i][j]!=b[i][j])
return
false;
return
true;
}

bool trans()
{

int
c[11][11];
for
(int i=1;i<=n;i++)
for
(int j=1;j<=n;j++)
c[i][j]=a[i][j];
for
(int i=1;i<=n;i++)
for
(int j=1;j<=n;j++)
a[n-j+1][i]=c[i][j];
return ok(a);
}

bool
turn()
{

int
c[11][11];
for
(int i=1;i<=n;i++)
for
(int j=1;j<=n;j++)
c[i][j]=a[i][j];
for
(int i=1;i<=n;i++)
for
(int j=1;j<=n;j++)
a[i][n-j+1]=c[i][j];
return ok(a);
}
 int solve()
{

for
(int i=1;i<=3;i++)
if
(trans()) return i;
trans();
if
( turn () ) return 4;
for
(int i=1;i<=3;i++)
if
(trans()) return 5;
trans();turn();
if
( ok(a) ) return 6;
return
7;
}

int
main()
{

input();
fout<<solve()<<endl;
return
0;
}

Compiling...
Compile: OK

Executing...
      Test 1: TEST OK [0 secs]
      Test 2: TEST OK [0 secs]
      Test 3: TEST OK [0.004 secs]
      Test 4: TEST OK [0 secs]
      Test 5: TEST OK [0.004 secs]
      Test 6: TEST OK [0.004 secs]
      Test 7: TEST OK [0 secs]
      Test 8: TEST OK [0 secs]

All tests OK.

YOUR PROGRAM ('transform') WORKED FIRST TIME! 
That's fantastic -- and a rare thing. 
Please accept these special automated congratulations.

相关文章推荐

USACO1.2.2 Transformations (方块转换)

A square pattern of size N x N (1
  • gswxw
  • gswxw
  • 2013年01月08日 20:19
  • 608

Usaco 1.2.2 方块变换(Transformations)

题目:  方块转换 来源:  Usaco1.2.2 题目大意:   给定7种变换,求一个N*N的图形到目标图形所需的变换(仅一步切优先选择标号小的) 数据范围: ...

[USACO 1.2.2] Transformations

[题目描述] Transformations 方块转换 一块N x N(1)正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式...

USACO1.2.2 Transformations (transform)

每次算出变换后的数组再比对。 /* ID:shijiey1 PROG:transform LANG:C++ */ #include #include #include using na...

USACO 1.2.2 Transformations

本题可以看作是一道几何题,定义了几种基本操作:1.顺时针旋转90度、2.180度、3.270度、4.绕竖直对称轴翻转、5.组合变换(先进行4,再进行1~3中任意一种)、6.不做改变。 题目给定变换之...

USACO天梯--Transformations

Transformations A square pattern of size N x N (1

USACO-Section1.2 Transformations

USACO-Section1.2 Transformations

USACO Training Section 1.2 Transformations 解题报告&AC代码

解题报告: 这道题乍一看觉得挺难,但是看到它说只会进行一次变换的时候…可以松口气了。那么接下来的工作变得轻松而…不怎么愉快… 分别将7种变换(当然6、7是打酱油的)实现后,在比较一次就好啦,简单高...

[usaco]Transformations题解

题目: 输入一个数字n表示n阶方阵,然后输入两个n阶方阵(就俩符号@和-)分别表示起始状态和结束状态。共有7种操作,如下所示 #1: 90 Degree Rotation: The pat...
  • xcwhkh
  • xcwhkh
  • 2017年05月21日 16:39
  • 94

usaco section1.2 Transformations

一道水题,但是水题也有水题的价值,我主要想通过这道题说下算法题解题时良好的代码结构的重要性。 当时在刷题的时候,刷题的速度异常的慢,然后我就统计了一下时间,3个小时,大概一般能刷3-4题,每道题写...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:USACO 1.2.2 Transformations
举报原因:
原因补充:

(最多只允许输入30个字)