02:Distance on Chessboard

//关于国际象棋这个题目 出题人简直丧尽天良,居然有不走这个情况
//本题代码如下,可以ac
#include<bits/stdc++.h>
#include<stdlib.h>
using namespace std;
typedef struct node{
	int num0;
	int num1;
	int num2;
	string num3;
}node;
//int abs(int)
int max(int a,int b)
{
	return a>b?a:b;
}
int main()
{
	node p[30];
	int n=0;
 int count=0;
 string a[30],b[30];
 cin>>n;
 for(int i=0;i<n;i++)
 {
 	cin>>a[i]>>b[i];
 	char temp0=a[i].at(0);
 	char temp1=a[i].at(1);
 	char temp2=b[i].at(0);
 	char temp3=b[i].at(1);
 	int res0=temp0-temp2;
 	int res1=temp1-temp3;
 	res0=abs(res0);
 	res1=abs(res1);
 	if(res0==res1)
 	{
 		p[count].num0=res0;
	 }
	else if(res0==0)
	{
		p[count].num0=res1;
	}
	else if(res1==0)
	{
		p[count].num0=res0;
	}
	else{
		int sum=0;
		//sum+=res0;
		sum=max(res0,res1);
		p[count].num0=sum;
	}
	//后 
 	if((res0==res1&&res0!=0)||(res0==0&&res1!=0)||(res1==0&&res0!=0))
 	{
 		p[count].num1=1;
	 }
	 else if(res0==0&&res0==0)
	 {
	 	p[count].num1=0;
	 }
	 else{
	 	p[count].num1=2;
	 }
	 //车 
	 if(res0==0&&res1==0)
	 {
	 	p[count].num2=0;
	 }
	 else if((res0==0&&res1!=0)||(res1==0&&res0!=0))
	 {
	 	p[count].num2=1;
	 }
	 else{
	 	p[count].num2=2;
	 }
	 //xiang
	 if(res0==0&&res1==0)
	 {
	 	p[count].num3="0";
	 }
	else if(res0==res1&&res0!=0)
	 {
	 	p[count].num3="1";
	 }
	 else if(res0%2==0&&res1%2==0)
	 {
	 	p[count].num3="2";
	 }
	 else{
	 	p[count].num3="Inf";
	 }
	 count++;
 }
 for(int i=0;i<count;i++)
 {
 	if(i!=count-1)
 	cout<<p[i].num0<<" "<<p[i].num1<<" "<<p[i].num2<<" "<<p[i].num3<<endl;
 	else{
 			cout<<p[i].num0<<" "<<p[i].num1<<" "<<p[i].num2<<" "<<p[i].num3;
	 }
 }
 
}

02: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 Inf
发布了78 篇原创文章 · 获赞 30 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42333573/article/details/97324319