进入USACO要注册才能看题: http://train.usaco.org/usacogate
题目:【翻译版、是别处的网站】http://www.wzoi.org/usaco/13%5C408.asp
SAMPLE INPUT (file transform.in)
3
@-@
---
@@-
@-@
@--
--@
SAMPLE OUTPUT (file transform.out)
1
水题……未能一次A……而且一开始还理解错题意……悲催
/*
ID: 1006100071
PROG: transform
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
//#include <map>
#include <queue>
#include <utility>
#include <iomanip>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <ctype.h>
using namespace std;
bool match (char a[][15], char b[][15], int n) //检查是否匹配
{
int i;
for (i = 0; i < n; i++)
if (strcmp (a[i], b[i]))
return false;
return true;
}
void copy (char a[][15], char b[][15], int n) //b复制到a
{
int i;
for (i = 0; i < n; i++)
strcpy (a[i], b[i]);
}
void _90right (char a[][15], int n) //对a进行90度右转
{
int i, j;
char b[15][15];
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
b[j][n-1-i] = a[i][j];
b[j][n] = 0;
}
}
for (i = 0; i < n; i++)
strcpy (a[i], b[i]);
}
void reflect (char a[][15], int n) //对a进行镜面反射
{
char b[15][15];
int i, j;
for (i = 0; i < n; i++)
{
for (j = n - 1; j >= 0; j--)
b[i][n-1-j] = a[i][j];
b[i][n] = 0;
}
for (i = 0; i < n; i++)
strcpy (a[i], b[i]);
}
int main()
{
/*freopen ("transform.in", "r", stdin);
freopen ("transform.out", "w", stdout);*/
char before[15][15], after[15][15], tp[15][15];
int n, i;
scanf ("%d", &n);
for (i = 0; i < n; i++)
scanf ("%s", before+i);
for (i = 0; i < n; i++)
scanf ("%s", after+i);
//**************************右转3种情况:90 180 270
copy (tp, before, n);
for (i = 1; i <= 3; i++)
{
_90right (tp, n);
if (match (tp, after, n))
{
printf ("%d\n", i);
return 0;
}
}
//**************************镜面翻转,也就是水平翻转
copy (tp, before, n);
reflect (tp, n);
if (match (tp, after, n))
{
puts ("4");
return 0;
}
//**************************镜面+旋转
copy (tp, before, n);
reflect (tp, n);
for (i = 1; i <= 3; i++)
{
_90right (tp, n);
if (match (tp, after, n))
{
puts ("5");
return 0;
}
}
//**************************本来就跟原来一样
if (match (before, after, n))
{
puts ("6");
return 0;
}
puts ("7"); //方法编号必须要从小到大一次判断,才能保证所得编号最小
return 0;
}
分享到:
相关推荐
Transformations(方块转换)是一种USACO题目,旨在解决将一个N x N的黑白瓦片图案转换成新的正方形图案的问题。该问题需要使用七种不同的转换方法来将原始图案转换成新的图案,包括旋转90度、180度、270度、水平...
USACO,全称为United States Computer Olympiad,是一项面向美国中学生的计算机编程竞赛,旨在培养学生的算法思维和问题解决能力。这个压缩包包含的是USACO历年月赛的试题,以及部分试题的数据和详细题解,是学习和...
- “MilkingCows”和“Transformations”可能需要使用动态规划来解决。动态规划是一种算法策略,它将问题分解为重叠的子问题,并存储这些子问题的解,避免重复计算。 4. 图论(Graph Theory): - “MixingMilk”...
资源中的"USACO英文原题.pdf"提供了所有试题的原始英文版本,这对于熟悉英文阅读和理解国际标准的表述至关重要。同时,"USACO全部译题.pdf"则为这些题目提供了中文翻译,帮助那些英语阅读能力有限或希望更直观理解...
USACO 官网第一到 五章 练习题中文语言官方数据 fps格式支持导入所有OJ 1 [1.1] 你的飞碟在这儿 Your Ride Is Here 2 [1.1] 贪婪的送礼者Greedy Gift Givers 3 [1.1] 黑色星期五Friday the Thirteenth 4 [1.1] 坏掉...
USACO试题精选是一本精选了美国计算机奥林匹克竞赛(USACO)历史上部分题目的题库,包含了诸多针对C++编程的学习题目。这些题目覆盖了多方面的知识点,不仅适合学习算法和编程技巧,而且对于C++学习者来说,是一套很...
《USACO历年试题——2002》 USACO,全称为USA Computing Olympiad,是美国计算机奥林匹克竞赛,旨在提升中学生的算法设计和编程能力。2002年的USACO试题集,是这一赛事历史上的一个重要部分,对于学习算法、准备ACM...
USACO,全称为United States Computer Olympiad,是一项面向中学生的国际性计算机编程竞赛,旨在提升参赛者在算法设计、问题解决以及编程方面的技能。USACO比赛通常包含多个编程题目,参赛者需要使用C++、Java等语言...
### USACO月赛十年题典知识点概览 #### 一、USACO简介与重要性 - **USACO**(USA Computing Olympiad)是美国计算机奥林匹克竞赛,旨在为美国选拔并培养参加国际信息学奥林匹克(IOI)的队伍。自2000年以来,USACO...
USACO(United States of America Computing Olympiad,美国信息学奥林匹克竞赛)是一个面向中学生的计算机编程竞赛,题解整理版中涉及的几个题目,下面将一一介绍它们的解题思路和涉及的关键知识点。 首先,...
这个合集提供了丰富的资源,包括英文原题、中文译题、测试数据以及解答,对于想要深入学习和准备USACO竞赛的学生来说,是一份极其宝贵的资料。 1. **USACO译题.chm**:这份文件包含了USACO历年竞赛的题目翻译,对于...
USACO,全称为United States阿Olympiad in Informatics,是美国计算机奥林匹克竞赛,旨在为高中生提供一个学习和展示编程技能的平台。这个比赛涵盖了算法、数据结构以及问题解决等多个方面,对于想要深入理解计算机...
"USACO全部译题.pdf"则是一份完整的题解集,包含了对所有原题的中文翻译和解答。这些解答通常详细解释了问题的解决方案,包括思路、算法和代码实现,对于学习者来说,是理解题目和检查自己解题思路的重要参考。 ...
8. **模拟和建模**:对实际问题的抽象和建模,然后用程序进行模拟,比如模拟交通灯控制、模拟水桶打水等问题。 9. **竞赛编程技巧**:如快速读入、输出格式化、调试技巧等,这些都是在竞赛环境中提高效率的关键。 ...
USACO,全称为United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者的算法设计、问题解决和编程能力。该比赛每年举行,分为青铜、白银、黄金和铂金四个级别,难度逐渐递增。...
含2001~2017全部比赛赛题测试...2001~2007 数据√ 题面× 标程题解× 2008~2010 数据√ 题面√ 标程题解× 2011~2017 数据√ 题面√ 标程题解√ 其中除2008~2010外其他年份均按照年度、月度、金银铜白金组别整理完全
### USACO 2010-2011 季度竞赛概览与关键信息 #### 一、概述 美国计算机奥林匹克(USACO)是面向全球中学生的计算机科学竞赛,旨在发掘并培养计算机科学领域的年轻人才。USACO 2010-2011 季度竞赛于 2010 年 11 月...
【USACO 英汉对照题目】是USA Computing Olympiad(美国计算机奥林匹克竞赛)的一部分,这是一个专门为信息学竞赛选手提供训练的在线题库。USACO 提供了一种章节递进的学习模式,从基础到高级,涵盖C和C++语言,帮助...