模拟题目,依照题目给定的要求变换图形就可以,变换的优先级依次减小。

这个题目我写的非常乱。只是最还还是勉强能够执行

/*
ID:twd30651
PROG:transform
LANG:C++
*/
#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<string.h>
using namespace std;
#define MAX 10
char a[MAX][MAX];
char b[MAX][MAX];
char c[MAX][MAX];
char t[MAX][MAX];
int N;
int flag=0;
int check()
{
for(int i=0;i<N;++i)
for(int j=0;j<N;++j)
{
if(b[i][j]!=t[i][j])return 0;
}
return 1;
}
void do1(char a[][MAX],char b[][MAX],int f)//f是个标志。标志是第五个操作调用的。还是直接调用的
{
for(int i=0;i<N;++i)
for(int j=0;j<N;++j)
{
b[j][N-i-1]=a[i][j];
}
if(!f&&check()){printf("1\n");
flag=1;
}
}
void do2(char a[][MAX],char b[][MAX],int f)//同理
{
for(int i=0;i<N;++i)
for(int j=0;j<N;++j)
{
b[N-i-1][N-j-1]=a[i][j];
}
if(!f&&check()){
printf("2\n");
flag=1;
}
}
void do3(char a[][MAX],char b[][MAX],int f)//同理
{
for(int i=0;i<N;++i)
for(int j=0;j<N;++j)
{
b[N-j-1][i]=a[i][j];
}
if(!f&&check()){
printf("3\n");
flag=1;
}
}
void do4(char a[][MAX],char b[][MAX])
{
for(int i=0;i<N;++i)
for(int j=0;j<N;++j)
{
b[i][N-j-1]=a[i][j];
}
if(check()){
printf("4\n");
flag=1;
}
}
void do5(char a[][MAX],char b[][MAX])
{
do4(a,c);
for(int i=0;i<3;++i)
{
if(i==0)
{
do1(c,b,1);
if(check()){printf("5\n");
flag=1;
}
}
else if(i==1)
{
do2(c,b,1);
if(check()){printf("5\n");
flag=1;}
}
else
{
do3(c,b,1);
if(check()){printf("5\n");
flag=1;}
}
}
}
void do6(char a[][MAX],char b[][MAX])
{
for(int i=0;i<N;++i)
for(int j=0;j<N;++j)
{
b[i][j]=a[i][j];
}
if(check())
{
printf("6\n");
flag=1;
}
} int main(int argc,char *argv[])
{
freopen("transform.in","r",stdin);
freopen("transform.out","w",stdout);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
scanf("%d",&N);
for(int i=0;i<N;++i)
scanf("%s",a[i]);
for(int i=0;i<N;++i)
scanf("%s",t[i]);
for(int i=1;i<=7;++i)
{
switch(i)
{
case 1:
if(flag==0)
do1(a,b,0);
break;
case 2:
if(flag==0)
do2(a,b,0);
break;
case 3:
if(flag==0)
do3(a,b,0);
break;
case 4:
if(flag==0)
do4(a,b);
break;
case 5:
if(flag==0)
do5(a,b);
break;
case 6:
if(flag==0)
do6(a,b);
break;
case 7:
if(flag==0)
printf("7\n");
break;
}
}
return 0;
}

USACO 1.2 Transformations (模拟)的更多相关文章

  1. USACO The Tamworth Two 模拟

    一道模拟题不过要担心的是牛或者人在转弯的时候,另一方如果能走,那么要走,不能停留. 还是蛮简单的. 调试输出的话可以看到具体追击过程 Source Code: /* ID: wushuai2 PROG ...

  2. USACO Section1.2 Transformations 解题报告

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

  3. 【题解】Acting Cute

    题目简介 正在 rainbow 的城堡游玩的 Freda 恰好看见了在地毯上跳舞卖萌的水叮当--于是-- Freda:"呜咕>_< 我也要卖萌T_T!" rainbow ...

  4. 【USACO】Transformations(模拟)

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

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

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

  6. USACO 1.3... 虫洞 解题报告(搜索+强大剪枝+模拟)

    这题可真是又让我找到了八数码的感觉...哈哈. 首先,第一次见题,没有思路,第二次看题,感觉是搜索,就这样写下来了. 这题我几乎是一个点一个点改对的(至于为什么是这样,后面给你看一个神奇的东西),让我 ...

  7. Your Ride Is Here 你的飞碟在这儿 USACO 模拟

    1001: 1.1.1 Your Ride Is Here 你的飞碟在这儿 时间限制: 1 Sec  内存限制: 128 MB提交: 9  解决: 9[提交] [状态] [讨论版] [命题人:外部导入 ...

  8. 【USACO】Transformations

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

  9. USACO Runaround Numbers 模拟

    根据题意的 Runaround 规则去找比当前数大的最近的一个 Runaround数字 模拟题~ Source code: /* ID: wushuai2 PROG: runround LANG: C ...

随机推荐

  1. 0x58B 四边形不等式

    bzoj1563: [NOI2009]诗人小G 还有优化二维区间DP的,形如f[i][j]min{f[i][k]+f[k][j+1]+val(i,j)} 其中val满足四边形不等式,而且对于任意a&l ...

  2. ClassLoader.getResourceAsStream(name);获取配置文件的方法

    ClassLoader.getResourceAsStream(name);路径问题 InputStream in = getClass().getResourceAsStream('/'+" ...

  3. 第一个"hello python!"

    第一个python程序"hello python!" 首先打开我们的编辑器,在安装好python后,直接在windows快捷方式里,输入IDLE,就可以看到我们的python默认自 ...

  4. c++ stl swap

    好久没写了,简单水一下吧! 一个是最近没怎么刷题,圣诞,元旦,leetcode暂停的比赛两周,自己最近沉迷于打游戏,没有好好抓住时间. 其实最近看了一点书,是侯捷的 <stl源码剖析>,有 ...

  5. go基础笔记

    1.slice:作为参数传递时,传递的是地址,当append时,在新的内存地址分配数据,但是没有返回给原的slice,只能通过返回值的方式赋值给slice2.func(a []int):传递,可以3. ...

  6. Ruby. Vs . Python

    前言:从语言的本质上来分析,我对Ruby持反对态度,毕竟语言是为了交流,在表达的效率层面为了正确性必须适当放弃复杂性.且有句老话说的好,Ruby In Rails 才是语言,而Ruby只是这个语言的工 ...

  7. (转)基于MVC4+EasyUI的Web开发框架形成之旅--权限控制

    http://www.cnblogs.com/wuhuacong/p/3361351.html 我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大 ...

  8. CentOS7 使用 firewalld 打开关闭 防火墙 与 端口!!

    1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status f ...

  9. 团体程序设计天梯赛-练习集-L1-028. 判断素数

    L1-028. 判断素数 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(<=10),随后N行,每行给出一个小于231的需要判断的正整数. 输出格 ...

  10. 路飞学城Python-Day137

    django项目二 个人博客系统 github地址:https://github.com/pandaboy1123/cnblog