https://www.luogu.org/problemnew/show/P1443

模板BFS......

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#include<cmath>
#include<set>
#include<vector>
#include<stack>
#include<queue>
#include<map>
using namespace std;
#define ll long long
#define se second
#define fi first
const int INF= 0x3f3f3f3f;
const int N=1e5+; int n,m,a,b;
int dx[]={,,,,-,-,-,-},dy[]={,-,,-,,-,,-};
int step[][];
bool vis[][]; struct note
{
int x,y;
int s;
}w,p; queue<note>q; void bfs(int ax,int ay)
{
w.x=ax; w.y=ay; w.s=;
vis[w.x][w.y]=;
step[w.x][w.y]=w.s; q.push(w);
while( !q.empty())
{
p=q.front();
q.pop();
for(int i=;i<;i++)
{
w.x=p.x+dx[i];
w.y=p.y+dy[i];
if(w.x<=n&&w.x>=&&w.y<=m&&w.y>=&&vis[w.x][w.y]==)
{
vis[w.x][w.y]=;
w.s=p.s+;
step[w.x][w.y]=w.s;
q.push(w);
}
}
}
} int main()
{
cin>>n>>m>>a>>b;
memset(step,-,sizeof(step));
bfs(a,b);
for(int i=;i<=n;i++){
for(int j=;j<=m;j++)
printf("%-5d",step[i][j]);
cout<<endl;
}
}

马的遍历(BFS的更多相关文章

  1. 洛谷 - P1443 - 马的遍历 - bfs

    略有收获的bfs,使用了try_enqueue函数使得加入队列非常方便.性能理论上是一样的因为是inline? 还有就是左对齐是使用%-4d,相对于右对齐的%4d,还有右对齐前导零的%04d,自己试一 ...

  2. 【bfs】洛谷 P1443 马的遍历

    题目:P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 记录一下第一道ac的bfs,原理是利用队列queue记录下一层的所有点,然后一层一层遍历: 其中: 1.p ...

  3. 最少步数&P1443 马的遍历

      1330:[例8.3]最少步数 s数组:记录(1,1)到达每一点需要的最少步数 s[1][1]自然为 0,其余初始化为 -1 que数组:que[#][1] 表示(1,1)可到达点的 x 坐标 q ...

  4. 马的遍历问题-回溯法应用-ACM

    马的遍历问题 在n*m的棋盘中,马只能走“日” 字.马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次.找出所有路径. 问题解的搜索空间? 棋盘的规模是n*m,是指行有n条边,列有m条边. ...

  5. 广度优先遍历-BFS、深度优先遍历-DFS

    广度优先遍历-BFS 广度优先遍历类似与二叉树的层序遍历算法,它的基本思想是:首先访问起始顶点v,接着由v出发,依次访问v的各个未访问的顶点w1 w2 w3....wn,然后再依次访问w1 w2 w3 ...

  6. 洛谷 P1443 马的遍历

    P1443 马的遍历 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘 ...

  7. 图的遍历BFS

    图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...

  8. 图的遍历BFS广度优先搜索

    图的遍历BFS广度优先搜索 1. 简介 BFS(Breadth First Search,广度优先搜索,又名宽度优先搜索),与深度优先算法在一个结点"死磕到底"的思维不同,广度优先 ...

  9. 洛谷1443 马的遍历【bfs】

    题目链接:https://www.luogu.org/problemnew/show/P1443 题意: 给一个n*m的棋盘,马在上面走(规则就是象棋中的规则,详细见代码dx,dy数组定义) 问棋盘上 ...

  10. 洛谷P1443 马的遍历(bfs,注意输出格式)

    题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...

随机推荐

  1. Demo客户端相关规范 v1.0

    目录 开发环境 开发工具 代码管理 项目代码 分支管理 名称管理 打包管理 存储路径 存储结构 测试包 正式包 名称管理 依赖组件 内部组件 外部组件 解决方案结构 解决方案命名 解决方案文件夹 项目 ...

  2. 【miscellaneous】理解Gstreamer架构

    本文给出了Gstreamer的总体设计.通过阅读本文可以了解Gstreamer的内部工作原理.本文编译自gstreamer源码中的文档,原文在源码中的位置是/gstreamer/docs/design ...

  3. JavaSE基础(二)--Java环境配置

    Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java window系统安装ja ...

  4. IO-file-05 文件夹的创建

    package com.bwie.io; import java.io.File; /** * 创建目录 * 1.mkdir:确保上级目录存在,不存在创建失败 * 2.mkdirs:上级目录可以不存在 ...

  5. insert 一条数据 然后拿出这条数据在数据库中生成的ID

    [insert 一条数据 然后拿出这条数据在数据库中生成的ID] <insert id="insert" parameterType="management&quo ...

  6. Feign【@FeignClient】

    首先看一下@FeignClient注解的源码: package org.springframework.cloud.openfeign; import java.lang.annotation.Doc ...

  7. MySQL安装与连接

    1.安装 下载地址:https://dev.mysql.com/downloads/mysql/ 常见问题及解决办法:https://blog.csdn.net/chen97_08/article/d ...

  8. vm启动时通过U盘安装的方法

    vm启动时通过U盘安装的方法         增加一个以U盘为硬盘的方法,通过boot中设置该硬盘启动后重新ghost或者安装win10X64位. 在虚拟机中增加一个硬盘,第二部设置为物理硬盘,选在对 ...

  9. 利用Python进行数据分析_Numpy_基础_2

      Numpy数据类型包括: int8.uint8.int16.uint16.int32.uint32.int64.uint64.float16.float32.float64.float128.co ...

  10. //统计报表-供水量统计主列表分页查询 Element-ui的分页插件

    <!-- //分页 --> <div class="pagination">时间(月) <el-pagination @current-change= ...