zoukankan      html  css  js  c++  java
  • POJ 2243 Knight Moves

    POJ_2243

        在读入并转化起点与终点之后,只需要从起点开始,对周围8个可达的位置进行广搜并依次记录到达该位置时的步数,当搜到终点的时候退出循环即可。

    #include<stdio.h>
    #include
    <string.h>
    char s[5],t[5],sx,sy,tx,ty;
    int a[10][10],dis[10][10],qx[100],qy[100];
    int dx[]={-1,-2,-2,-1,1,2,2,1},dy[]={-2,-1,1,2,2,1,-1,-2};
    int main()
    {
    int i,x,y,newx,newy,front,rear,min;
    while(scanf("%s%s",s,t)==2)
    {
    memset(a,
    -1,sizeof(a));
    sx
    =s[0]-'a';
    sy
    =s[1]-'1';
    tx
    =t[0]-'a';
    ty
    =t[1]-'1';
    memset(dis,
    -1,sizeof(dis));
    dis[sx][sy]
    =0;
    front
    =rear=0;
    qx[rear]
    =sx;
    qy[rear]
    =sy;
    rear
    ++;
    while(front<rear)
    {
    x
    =qx[front];
    y
    =qy[front];
    if(x==tx&&y==ty)
    break;
    front
    ++;
    for(i=0;i<8;i++)
    {
    newx
    =x+dx[i];
    newy
    =y+dy[i];
    if(dis[newx][newy]<0&&newx>=0&&newx<8&&newy>=0&&newy<8)
    {
    dis[newx][newy]
    =dis[x][y]+1;
    qx[rear]
    =newx;
    qy[rear]
    =newy;
    rear
    ++;
    }
    }
    }
    min
    =dis[tx][ty];
    printf(
    "To get from %s to %s takes %d knight moves.\n",s,t,min);
    }
    return 0;
    }

      

  • 相关阅读:
    httphelper
    MD5加密
    json操作
    将list转成tree
    GenerateId类:生成唯一id、订单号
    加密、解密(默认密钥向量)
    Hadoop HDFS批量处理
    OceanBase学习总结
    TiDB学习
    开机自启动rc.local文件修改权限
  • 原文地址:https://www.cnblogs.com/staginner/p/2146456.html
Copyright © 2011-2022 走看看