模拟就行。注意int arr[][]二维数组在定义时是二维数组,而函数传参时是指针。这意味着memset()的不同。传参时只能当作一维逐个memset。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
#define mkp make_pair
using namespace std;
const double EPS=1e-;
const int SZ=,INF=0x7FFFFFFF;
typedef long long lon;
char src[SZ][SZ],dst[SZ][SZ]; void init(char x[SZ][SZ],int n)
{
for(int i=;i<=n;++i)
{
for(int j=;j<=n;++j)cin>>x[i][j];
}
} bool same1(char x[SZ][SZ],char y[SZ][SZ],int n)
{
for(int i=;i<=n;++i)
{
for(int j=;j<=n;++j)
{
if(y[j][n-i+]!=x[i][j])return ;
}
}
return ;
} bool same2(char x[SZ][SZ],char y[SZ][SZ],int n)
{
for(int i=;i<=n;++i)
{
for(int j=;j<=n;++j)
{
if(y[n-i+][n-j+]!=x[i][j])return ;
}
}
return ;
} bool same3(char x[SZ][SZ],char y[SZ][SZ],int n)
{
for(int i=;i<=n;++i)
{
for(int j=;j<=n;++j)
{
if(y[n-j+][i]!=x[i][j])return ;
}
}
return ;
} void getsvd(char dst[SZ][SZ],char src[SZ][SZ],int n)
{
//是指针
for(int i=;i<=n;++i)
memset(dst[i],,sizeof(dst[i]));
for(int i=;i<=n;++i)
{
for(int j=;j<=n;++j)dst[i][j]=src[i][j];
}
for(int i=;i<=n;++i)
{
for(int j=;j<=n/;++j)
{
swap(dst[i][j],dst[i][n-j+]);
}
}
} bool same4(char x[SZ][SZ],char y[SZ][SZ],int n)
{
char svd[SZ][SZ];
//cout<<sizeof(svd)<<endl;
//memset(svd,0,sizeof(svd));
getsvd(svd,x,n);
//return equal(svd+2,svd+3,y+2);
//return equal(svd[1]+1,svd[1]+1+n*12,y[1]+1);
return equal(svd[]+,svd[]+n*,y[]+);
} bool same5(char x[SZ][SZ],char y[SZ][SZ],int n)
{
char svd[SZ][SZ];
getsvd(svd,x,n);
if(same1(svd,y,n))return ;
else if(same2(svd,y,n))return ;
else if(same3(svd,y,n))return ;
else return ;
} bool same6(char x[SZ][SZ],char y[SZ][SZ],int n)
{
return equal(x[]+,x[]+n*,y[]+);
} int main()
{
std::ios::sync_with_stdio();
//freopen("d:\\1.txt","r",stdin);
lon casenum;
//cin>>casenum;
//for(lon time=1;time<=casenum;++time)
{
int n;
cin>>n;
init(src,n),init(dst,n);
if(same1(src,dst,n))cout<<<<endl;
else if(same2(src,dst,n))cout<<<<endl;
else if(same3(src,dst,n))cout<<<<endl;
else if(same4(src,dst,n))cout<<<<endl;
else if(same5(src,dst,n))cout<<<<endl;
else if(same6(src,dst,n))cout<<<<endl;
else cout<<<<endl;
}
return ;
}

usaco Transformations的更多相关文章

  1. 【USACO】Transformations(模拟)

    Transformations A square pattern of size N x N (1 <= N <= 10) black and white square tiles is ...

  2. 【USACO】Transformations

    A square pattern of size N x N (1 <= N <= 10) black and white square tiles is transformed into ...

  3. Transformations 方块转换 USACO 模拟 数组 数学 耐心

    1006: 1.2.2 Transformations 方块转换 时间限制: 1 Sec  内存限制: 128 MB提交: 10  解决: 7[提交] [状态] [讨论版] [命题人:外部导入] 题目 ...

  4. USACO Section 1.2 Transformations 解题报告

    题目 题目描述 一块 N x N正方形的黑白瓦片的图案要被转换成新的正方形图案. 写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 转 90 度:图案按顺时针转 90 度. 转 1 ...

  5. USACO 1.2.2 Transformations 方块转换

    Description 一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案.写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 1:转90度 ...

  6. USACO Section1.2 Transformations 解题报告

    transform解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...

  7. USACO Section 1.2PROB Transformations

    挺有趣的一道题,呵呵,不算难 /* ID: jusonal1 PROG: transform LANG: C++ */ #include <iostream> #include <f ...

  8. USACO 1.2 Transformations (模拟)

    模拟题目,依照题目给定的要求变换图形就可以,变换的优先级依次减小. 这个题目我写的非常乱.只是最还还是勉强能够执行 /* ID:twd30651 PROG:transform LANG:C++ */ ...

  9. USACO Training Section 1.2 [USACO1.2]方块转换 Transformations

    题目描述 一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案.写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 1:转90度:图案按顺时针 ...

随机推荐

  1. topcoder srm 415 div1

    problem1 link 每次贪心地从crans由大到小地找到一个能搬得动地尽量大地box即可. problem2 link 首先,$hava$可以全部换成钱,然后就是找到一个最小的钱减去自己已有的 ...

  2. topcoder srm 708 div1 -3

    1.定义一个字符串s,定义函数$f(s)=\sum_{i=1}^{i<|s|}[s_{i-1}\neq s_{i}]$,给定字符串$p,q$,定义函数$g(p,q)=\sum_{c='a'}^{ ...

  3. Golang中使用kafka

    golang中比较好用的kafka client有 sarama confluent-kafka-go go_kafka_client optiopay-kafka siesta 其中 sarama的 ...

  4. codevs1048石子归并

    codevs1048 石子归并  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 传送门  http://codevs.cn/problem/1048/ 题目描述 ...

  5. Lazarus分体式改成一体式窗口

    安装包 anchordocking和Sparta_DockedFormEditor 然后点选保存并重新编译IDE即可

  6. hihoCoder week7 完全背包

    完全背包 题目链接 https://hihocoder.com/contest/hiho7/problem/1 #include <bits/stdc++.h> using namespa ...

  7. Winform选择目录路径与选择文件路径

    https://blog.csdn.net/zaocha321/article/details/52528279 using System.Collections.Generic; using Sys ...

  8. 题解——洛谷P3390 【模板】矩阵快速幂(矩阵乘法)

    模板题 留个档 #include <cstdio> #include <algorithm> #include <cstring> #define int long ...

  9. 在Vue的构造器里我们写一个add方法,然后我们用实例的方法调用它

    html <div id="app"> <div>{{message}}</div> </div> js var vm = new ...

  10. 【团队】EasyKing的实现_1

    完成部分 三个功能类 英雄. 子弹. 瓦片地图. 一个设置类 地图 实现功能 瓦片地图 英雄移动 攻击 受到攻击 TODO 子弹攻击范围 地图.建筑物和英雄的碰撞箱 音效 英雄技能 建筑 双人联机 物 ...