USACO 1.2 Transformations (模拟)
模拟题目,依照题目给定的要求变换图形就可以,变换的优先级依次减小。
这个题目我写的非常乱。只是最还还是勉强能够执行
/*
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 (模拟)的更多相关文章
- USACO The Tamworth Two 模拟
一道模拟题不过要担心的是牛或者人在转弯的时候,另一方如果能走,那么要走,不能停留. 还是蛮简单的. 调试输出的话可以看到具体追击过程 Source Code: /* ID: wushuai2 PROG ...
- USACO Section1.2 Transformations 解题报告
transform解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...
- 【题解】Acting Cute
题目简介 正在 rainbow 的城堡游玩的 Freda 恰好看见了在地毯上跳舞卖萌的水叮当--于是-- Freda:"呜咕>_< 我也要卖萌T_T!" rainbow ...
- 【USACO】Transformations(模拟)
Transformations A square pattern of size N x N (1 <= N <= 10) black and white square tiles is ...
- Transformations 方块转换 USACO 模拟 数组 数学 耐心
1006: 1.2.2 Transformations 方块转换 时间限制: 1 Sec 内存限制: 128 MB提交: 10 解决: 7[提交] [状态] [讨论版] [命题人:外部导入] 题目 ...
- USACO 1.3... 虫洞 解题报告(搜索+强大剪枝+模拟)
这题可真是又让我找到了八数码的感觉...哈哈. 首先,第一次见题,没有思路,第二次看题,感觉是搜索,就这样写下来了. 这题我几乎是一个点一个点改对的(至于为什么是这样,后面给你看一个神奇的东西),让我 ...
- Your Ride Is Here 你的飞碟在这儿 USACO 模拟
1001: 1.1.1 Your Ride Is Here 你的飞碟在这儿 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 9[提交] [状态] [讨论版] [命题人:外部导入 ...
- 【USACO】Transformations
A square pattern of size N x N (1 <= N <= 10) black and white square tiles is transformed into ...
- USACO Runaround Numbers 模拟
根据题意的 Runaround 规则去找比当前数大的最近的一个 Runaround数字 模拟题~ Source code: /* ID: wushuai2 PROG: runround LANG: C ...
随机推荐
- H3C交换机DHCP Server配置的六个方面
H3C交换机DHCP Server配置的六个方面 在交换机上面配置DHCP内容是司空见惯的了.那么这里我们就讲解一下H3C交换机DHCP Server配置内容.之后的文章中,我们还对针对其他方面的配置 ...
- Hdu-6249 2017CCPC-Final G.Alice’s Stamps 动态规划
题面 题意:给你n个集合,每个集合有L到R这些种类的邮票,让你选择其中的K个集合,使得最后选择的邮票种类尽可能多,N,L,R都<=2000 题解:容易乱想到网络流,可是再细想一下就会发现处理不了 ...
- HTML不熟悉方法总结
1. onblur 属性在元素失去焦点时触发. 2. onfocus 属性在元素获得焦点时触发. 3.addEventlistener 事件监听 4.focus() 方法用于给予该元素焦点.这样用 ...
- shp系列(四)——利用C++进行Shx文件的读(打开)
1.shx文件的基本情况 shx文件又叫索引文件,主要包含坐标文件的索引信息,文件中每个记录包含对应的坐标文件记录距离坐标文件的初始位置的偏移量.通过索引文件可以很方便地在坐标文件中定位到指定目标的坐 ...
- BZOJ 3522 DFS+DP
思路: f[]表示选1个点的 g[]表示选2个点的 dp一下 ans+=(ll)g[k]*deep[k]; g[k]+=(ll)f[k]*deep[k]; f[k]+=deep[k]; 听说有O(n) ...
- C#中的值类型、引用类型,代码告诉你他是什么类型。
C#代码告诉你这是什么类型. using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- 微信小程序怎么开发(小程序开发文档)
微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 2017年1月9日~2018年1月9日,小程序正式上线一周年.上线以来,小程序不断地释放新能力, ...
- 学习环境搭建1——安装python
操作系统:windows7 64bit 下载地址python :https://www.python.org/ 下载Windows x86-64 executable installer 安 ...
- Android高效加载大图
通过BitmapFactory的decode方法设置特定的options缩小图片到指定尺寸 1:通过加载设置了只编码图片边界options的图片,获取原图的尺寸和类型 2:计算图片需要缩小的倍数 3: ...
- [ Java ] [ JUnit ] [ Eclipse ] coverage
官方資訊: https://www.eclemma.org/ - 簡短使用範例說明: https://dzone.com/articles/java-code-coverage-in-eclipse ...