Description

国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间。如下图所示: 

王、后、车、象的走子规则如下:

  • 王:横、直、斜都可以走,但每步限走一格。
  • 后:横、直、斜都可以走,每步格数不受限制。
  • 车:横、竖均可以走,不能斜走,格数不限。
  • 象:只能斜走,格数不限。

写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。

Input

第一行是测试数据的组数t(0 <= t <= 20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,字母从"a"到"h",数字从"1"到"8"。 

Output

对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出"Inf".

Sample Input

2
a1 c3
f5 f8

Sample Output

2 1 2 1

3 1 1 Inf

#include <stdio.h> 
#include <math.h>
#include <string.h>
int main() 

   int nCases,i;
   scanf("%d",&nCases);
   int x,y;
   for(i=0;i<nCases;i++)
   {
       char begin[5],end[5];
       scanf("%s%s",begin,end);
       x=abs(begin[0]-end[0]);
       y=abs(begin[1]-end[1]);
       if(x==0&&y==0)//起始位置相同的情况
           printf("0 0 0 0\n");
       else
       {
           if(x<y)          //王的步数
               printf("%d",y);
           else
               printf("%d",x);

if(x==0||y==0||x==y)//后的步数
               printf(" 1");
           else
               printf(" 2");
           if(x==0||y==0)//车的步数
               printf(" 1");
           else
               printf(" 2");
           if(abs(x-y)%2!=0)//象的步数
               printf(" Inf\n");
           else if(x==y)
               printf(" 1\n");
           else
               printf(" 2\n");

}      
   }
   return 0;
   
}

转载于:https://www.cnblogs.com/wangtianxj/archive/2009/03/11/1408888.html

1657 棋盘上的距离相关推荐

  1. 没事做做题之棋盘上的距离

    这是<程序设计引导及在线实践>上的题目,其实题目是北京大学程序在线评测系统里面的题目. 题目描述: 国际象棋的棋盘是黑白相间的 8 * 8 的方格,棋子放在格子中间. 王.后.车.象的走子 ...

  2. BZOJ2281:[SDOI2011]黑白棋(博弈论,组合数学,DP)

    Description 小A和小B又想到了一个新的游戏. 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色. 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同. 小 ...

  3. c语言程序设计作业word版,c语言程序设计Word版

    <c语言程序设计Word版>由会员分享,可在线阅读,更多相关<c语言程序设计Word版(19页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ,希望对您有帮助,可 ...

  4. 数据科学中常见的9种距离度量方法

    选自towardsdatascience 作者:Maarten Grootendorst 机器之心编译 编辑:陈萍 在数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离.在本 ...

  5. 根据声音信号测量距离

    很多动物依赖于声音来感知外部的环境,像夜间活动的蝙蝠.树鼩,海洋里的生物鲸鱼.海豚等.声呐定位不仅给它们追踪猎物.躲避天敌的方法,有时也可以给它们寻觅配偶提供方便. 依靠听觉定位的动物 工业革命之后, ...

  6. 机器学习中的度量—— 向量距离

    机器学习是时下流行AI技术中一个很重要的方向,无论是有监督学习还是无监督学习都使用各种"度量"来得到不同样本数据的差异度或者不同样本数据的相似度.良好的"度量" ...

  7. python 余弦距离_距离公式汇总以及Python实现

    1.余弦距离: 描述:余弦夹角也可以叫余弦相似度.几何中夹角余弦可用来衡量两个向量方向的差异,机 器学习中借用这一概念来衡量向量样本之间的差异.余弦的取值范围[-1,1],求的两个向量 的夹角并得出夹 ...

  8. 欧几里得距离、曼哈顿距离和切比雪夫距离

    欧几里得距离,欧氏距离,也就是我们熟知的距离,可扩展至m维 2维:d=sqrt((x1-x2)2+(y1-y2)2) 3维:d=sqrt((x1-x2)2+(y1-y2)2+(z1-z2)2) m维: ...

  9. 常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)

    在机器学习和数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离.本文介绍几种常用的距离量度方法. 一.欧氏距离(Euclidean Distance) 我们从最常见的欧式距离 ...

最新文章

  1. LeetCode简单题之找出两数组的不同
  2. CSS: hover选择器的使用
  3. linux 后台程序 cout输入到文件,istringstream在读文件时候的应用
  4. 对单片机C语言的一些误用和总结
  5. Exp3 免杀原理与实践 20164314
  6. 中兴通讯携手ACCYOURATE发布“YouCare”5G智慧T恤
  7. 解线性方程组的迭代法(雅可比、高斯-塞德尔迭代法)
  8. 云计算与 Cloud Native | 数人云CEO王璞@KVM分享实录
  9. android 点击,触摸事件
  10. 2020 博客之星”年度总评选 TOP 200 名单已出,大家快来看看吧,同时欢迎围观技术大佬们
  11. 电脑打开热点后无法连接到网络
  12. Apollo CANbus 模块原理及源码学习
  13. IDEA插件(BindED)——查看class文件的十六进制
  14. UVALive - 3713 Astronauts(2-SAT)
  15. 【文献阅读】Cost-Sensitive Portfolio Selection via Deep Reinforcement Learning
  16. 【实践案例分享】阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践
  17. 幼儿园体育游戏电子计算机教案,【小班体育活动】_小班体育教案100篇_小班体育游戏活动教案5篇...
  18. OS开学考前临时抱佛jio(2)
  19. 在 Microsoft Word 插入代码块(无需下载任何软件)
  20. 太神了!世界上最著名的菲尔人格测试!

热门文章

  1. cobbler 无人值守-安装
  2. Java中实现多线程关键词整理
  3. 十年后你用什么听音乐?
  4. HBase数据快速导入之ImportTsvBulkload
  5. response.setContentType()方法浅析
  6. ThinkPHP关联模型详解
  7. struts tags 学习
  8. HDU 1754 I Hate It
  9. App Store生存法则:iOS开发者经验分享
  10. USBSpirit(USB精灵)更新到1.2.300.105