1007:Distance on Chessboard
时间限制:
1000ms 内存限制:
65536kB
描述
国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间。如下图所示:
王、后、车、象的走子规则如下:
- 王:横、直、斜都可以走,但每步限走一格。
- 后:横、直、斜都可以走,每步格数不受限制。
- 车:横、竖均可以走,不能斜走,格数不限。
- 象:只能斜走,格数不限。
写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。
输入
第一行是测试数据的组数t(0 <= t <= 20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,字母从"a"到"h",数字从"1"到"8"。
输出
对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出"Inf".
样例输入
2
a1 c3
f5 f8
样例输出
2 1 2 1
3 1 1 Infimport java.util.Scanner;
public class Main {
public static void main(String[] args) {
Integer n = 0;
Scanner sc = new Scanner(System.in);
String sn = sc.next();
n = Integer.parseInt(sn);
String begin[] = new String[n];
String end[] = new String[n];
for (int i = 0; i < n; i++) {
begin[i] = sc.next();
end[i] = sc.next();
}
for(int i=0;i<n;i++){
int x = Math.abs(begin[i].charAt(0)-end[i].charAt(0));
int y = Math.abs(begin[i].charAt(1)-end[i].charAt(1));
if(x==0&&y==0)
{
System.out.println(0+" "+0+" "+0+" "+0);
}
else{
if(x<y) System.out.print(y+" ");
else System.out.print(x+" ");
if(x==y||x==0||y==0)
System.out.print(1+" ");
else
System.out.print(2+" ");
if(x==0||y==0)
System.out.print(1+" ");
else
System.out.print(2+" ");
if(Math.abs(x-y)%2!=0){
System.out.println("Inf");
}
else if(x==y) System.out.println(1);
else System.out.println(2);
}
}
}
}
本题是细节题,不要忘记Inf这个。。。
分享到:
相关推荐
王、后、车、象的走子规则如下: 王:横、直、斜都可以走,但每步限走一格。 后:横、直、斜都可以走,每步格数不受限制。 车:横、竖均可以走,不能斜走,格数不限。 象:只能斜走,格数不限。
5. **练习题目**:可能包含历年的ACM-ICPC竞赛题目和解题报告,用于训练和检验模板的适用性。 6. **测试框架**:用于自动化测试代码正确性的脚本或程序,可能包括输入输出的比对、时间复杂度的计算等功能。 7. **...
**ACM-ICPC(国际大学生程序设计竞赛)概述** ACM-International Collegiate Programming Contest(简称ACM-ICPC)是由美国计算机协会(Association for Computing Machinery)主办的一项全球性的编程竞赛,旨在...
【标题】:“基于C++的ACM-ICPC模板” 在计算机编程竞赛中,特别是国际大学生程序设计竞赛(ACM-ICPC)中,拥有一套高效、灵活且经过优化的编程模板是至关重要的。这个“基于C++的ACM-ICPC模板”集合了一套专门为...
6. **ACM培训**:除了源码,提供的“acm培训资料”可能包括历年的比赛题目、解题报告、算法教程等,这些资料对参赛者准备比赛和提升编程技能非常有益。 综上所述,这个压缩包对于想要深入了解ACM竞赛、在线评测系统...
这个压缩包很可能是ACM-ICPC参赛者或爱好者的学习资源,其中包含了“ACM-ICPC-master”这样的文件夹,可能包含源代码、解题策略、训练材料等。 算法在ACM-ICPC中的地位不言而喻。比赛中,参赛队伍需要在有限的时间...
解题报告是ACM-ICPC比赛后的关键资源,它提供了对每个问题的详细分析,包括问题描述、数据范围、解题思路、算法设计、时间复杂度和空间复杂度分析。对于参赛者来说,解题报告可以帮助他们理解在比赛中可能遇到的难点...
ACM-ICPC 历年竞赛 真题,各大赛区真题详解,内含几大赛区各年度的真题
解题报告和代码是ACM-ICPC训练的核心部分,它们揭示了解决问题的关键思路和高效算法。通过这份资料,我们可以深入理解如何将数学理论与编程技术相结合,解决实际问题。湖南师大数计院提供的题目涵盖了广泛的数学知识...
2010ACM-ICPC总决赛试题介绍了一个特定的编程语言——APL(Array Programming Language),并要求参赛者编写一个解释器来处理特定的APL表达式。知识点涉及APL语言的特性,包括其语法和操作符行为,以及如何处理矩阵...
在ACM问题中,常用的数据结构如链表、栈、队列、树、图等都是解题的基础。例如,二叉搜索树在查找和排序问题中发挥重要作用,而图的遍历算法如深度优先搜索和广度优先搜索则是解决复杂网络问题的关键。 接下来,...
《ACM-ICPC培训资料汇编》是一套全面针对国际大学生程序设计竞赛(ACM-ICPC)的训练材料,旨在帮助参赛者提升算法理解、数据结构掌握以及编程技能。该汇编涵盖了ACM-ICPC比赛中的关键知识点,包括基础算法与数据结构...
ACM-ICPC(国际大学生程序设计竞赛,International Collegiate Programming Contest)是全球最具有影响力的大学生编程比赛之一,旨在提升学生的算法设计、问题解决和编程技能。SWERC(Southwest European Regional ...
标题中的“2011-2012年ACM-ICPC世界总决赛题目带测试数据”揭示了这个压缩包包含的是ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest, 简称ACM-ICPC)在2011至2012年期间世界总决赛的...
在解决许多计算机科学中的问题时,DFS扮演着至关重要的角色,特别是在图论、游戏理论、编译器设计以及算法竞赛如ACM-ICPC(国际大学生程序设计竞赛)中。 北京大学在2015年举办的ACM-ICPC暑期课程中,专门对深度...
【2008 ACM-ICPC East Central North America】是一个重要的国际编程竞赛活动,全称为“2008年美国计算机协会(ACM)国际大学生程序设计竞赛(International Collegiate Programming Contest, ICPC)东中部北美区...
《算法在ACM-ICPC中的重要性及应用》 ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM-ICPC)是全球最具影响力的大学生编程比赛,旨在激发学生对计算机科学的兴趣,提升其...
### ACM-ICPC编程基础实验指导相关知识点 #### 一、ACM-ICPC简介 - **起源与发展**:ACM-ICPC是由国际计算机协会(ACM, Association for Computing Machinery)主办的一项国际大学生程序设计竞赛,始于1977年,...
标题中的“ACM-Wave 控件”指的是音频压缩和解压缩模型(Audio Compression Manager, ACM)中的波形处理部分。ACM是Windows操作系统提供的一种API,用于管理和操作音频数据的编码和解码。这个控件可能是一个软件组件...
【标题】"PyPI 官网下载 | mypy-boto3-acm-pca-1.12.24.0.tar.gz" 提供的是一个针对Python的特定库的压缩包,该库是mypy-boto3-acm-pca的一个版本。PyPI(Python Package Index)是Python社区的主要软件包仓库,...