poj 2243 Knight Moves bfs

简介:

水题,裸的bfs,基本没有要注意的

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <queue>
#define INF 1E9
using namespace std;
const int dir[8][2]={-2,-1,-2,1,-1,-2,-1,2,1,-2,1,2,2,1,2,-1};
int vis[9][9];
struct node
{
    int x,y;
};
queue<node> q;
char aim[3],stt[3];
node st,am,now,temp;
int i;
int main()
{
    while(~scanf("%s%s",stt,aim))
    {
        memset(vis,0,sizeof(vis));
        while(!q.empty())q.pop();
        st.x=stt[0]-'a';st.y=stt[1]-'1';
        am.x=aim[0]-'a';am.y=aim[1]-'1';
        vis[st.x][st.y]=1;
        q.push(st);
        while(!q.empty()&&!vis[am.x][am.y])
        {
            now=q.front();q.pop();
            for(i=0;i<8;i++)
            {
                temp.x=now.x+dir[i][0];
                temp.y=now.y+dir[i][1];
                if(temp.x<0||temp.x>7||temp.y<0||temp.y>7||vis[temp.x][temp.y])continue;
                vis[temp.x][temp.y]=vis[now.x][now.y]+1;
                q.push(temp);
            }
        }
        printf("To get from %s to %s takes %d knight moves.\n",stt,aim,vis[am.x][am.y]-1);
    }
}


 

目录
相关文章
|
机器学习/深度学习 弹性计算 运维
ECS阿里云监控服务
ECS阿里云监控服务
451 3
|
JavaScript 前端开发
TypeScript 中的 infer 关键字
TypeScript 中的 infer 关键字
416 0
|
SQL 存储 关系型数据库
后端技术在现代软件开发中的重要性
本文将深入探讨后端技术在现代软件开发中的关键角色和影响。我们将从后端技术的基本概念入手,逐步解析其在实际项目中的应用,最终展示其对整个软件生态系统的重要性。
420 5
|
决策智能 开发者
手把手教你如何用AIGC大模型写一首歌
本文记录了作者用大模型创作歌曲及视频的全过程。
436 10
|
11月前
|
人工智能 自然语言处理 搜索推荐
《AI加持,让鸿蒙元宇宙交互自然度飙升》
在鸿蒙元宇宙中,人工智能通过多模态感知、个性化自适应、智能虚拟角色互动、实时场景优化及内容生成与推荐等技术,大幅提升用户与虚拟环境的交互自然度。它不仅使设备能精准捕捉用户的视觉、听觉、触觉信息,还通过学习用户行为提供个性化的体验,让虚拟角色更智能地回应情感需求,优化虚拟场景并推荐个性化内容,为用户带来沉浸式、贴心的虚拟世界体验。
227 10
axios全局做节流,解决多次点击导致多次请求接口
本文介绍了如何在Axios请求中实现全局节流,以防止用户快速多次点击导致重复发送相同请求的问题。
343 2
|
机器学习/深度学习 人工智能 并行计算
探索未来科技的边界:人工智能与量子计算的融合之路
【10月更文挑战第14天】 探索未来科技的边界:人工智能与量子计算的融合之路
341 0
|
网络协议 算法 数据库
|
安全 Android开发
游戏封包,你会了吗?
游戏封包,你会了吗?
1146 1
游戏封包,你会了吗?