poj-1657 Distance on Chessboard
Posted gufana
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj-1657 Distance on Chessboard相关的知识,希望对你有一定的参考价值。
c语言解决
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,i;
scanf("%d",&num);
for(i=0;i<num;i++)
{
char begin[5],end[5];//用begin和end分别存储棋子的起止位置
scanf("%s%s",begin,end);//begin 和 end 已经是地址
int x,y;//用x和y分别存储起止位置之间x方向和y方向上的距离
x = abs(begin[0]-end[0]);
y = abs(begin[1]-end[1]);
if(x==0&&y==0) printf("0 0 0 0
");//起止位置相同,所有棋子都走0步
else
{
int sum,number;
sum = abs(x-y);
number = x>y? x:y;
//对于王来说
printf("%d ",number);
//对于后来说
if(x==y||x==0||y==0)printf("1 ");
else printf("2 ");
//对于车来说
if(x==0||y==0)printf("1 ");
else printf("2 ");
//对于象来说
if(sum%2!=0)printf("Inf
");
else if(x==y) printf("1
");
else printf("2
");
}
}
}
遇到的问题:
如何存储字符:运用两个字符数组存储
scanf("%s%s",begin,end) 给两个字符数组赋值
以上是关于poj-1657 Distance on Chessboard的主要内容,如果未能解决你的问题,请参考以下文章
codechef Prime Distance On Tree(树分治+FFT)
bzoj4449 [Neerc2015]Distance on Triangulation