马的遍历(BFS
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的更多相关文章
- 洛谷 - P1443 - 马的遍历 - bfs
		
略有收获的bfs,使用了try_enqueue函数使得加入队列非常方便.性能理论上是一样的因为是inline? 还有就是左对齐是使用%-4d,相对于右对齐的%4d,还有右对齐前导零的%04d,自己试一 ...
 - 【bfs】洛谷 P1443 马的遍历
		
题目:P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 记录一下第一道ac的bfs,原理是利用队列queue记录下一层的所有点,然后一层一层遍历: 其中: 1.p ...
 - 最少步数&P1443 马的遍历
		
1330:[例8.3]最少步数 s数组:记录(1,1)到达每一点需要的最少步数 s[1][1]自然为 0,其余初始化为 -1 que数组:que[#][1] 表示(1,1)可到达点的 x 坐标 q ...
 - 马的遍历问题-回溯法应用-ACM
		
马的遍历问题 在n*m的棋盘中,马只能走“日” 字.马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次.找出所有路径. 问题解的搜索空间? 棋盘的规模是n*m,是指行有n条边,列有m条边. ...
 - 广度优先遍历-BFS、深度优先遍历-DFS
		
广度优先遍历-BFS 广度优先遍历类似与二叉树的层序遍历算法,它的基本思想是:首先访问起始顶点v,接着由v出发,依次访问v的各个未访问的顶点w1 w2 w3....wn,然后再依次访问w1 w2 w3 ...
 - 洛谷 P1443 马的遍历
		
P1443 马的遍历 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘 ...
 - 图的遍历BFS
		
图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...
 - 图的遍历BFS广度优先搜索
		
图的遍历BFS广度优先搜索 1. 简介 BFS(Breadth First Search,广度优先搜索,又名宽度优先搜索),与深度优先算法在一个结点"死磕到底"的思维不同,广度优先 ...
 - 洛谷1443 马的遍历【bfs】
		
题目链接:https://www.luogu.org/problemnew/show/P1443 题意: 给一个n*m的棋盘,马在上面走(规则就是象棋中的规则,详细见代码dx,dy数组定义) 问棋盘上 ...
 - 洛谷P1443 马的遍历(bfs,注意输出格式)
		
题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...
 
随机推荐
- Demo客户端相关规范 v1.0
			
目录 开发环境 开发工具 代码管理 项目代码 分支管理 名称管理 打包管理 存储路径 存储结构 测试包 正式包 名称管理 依赖组件 内部组件 外部组件 解决方案结构 解决方案命名 解决方案文件夹 项目 ...
 - 【miscellaneous】理解Gstreamer架构
			
本文给出了Gstreamer的总体设计.通过阅读本文可以了解Gstreamer的内部工作原理.本文编译自gstreamer源码中的文档,原文在源码中的位置是/gstreamer/docs/design ...
 - JavaSE基础(二)--Java环境配置
			
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java window系统安装ja ...
 - IO-file-05 文件夹的创建
			
package com.bwie.io; import java.io.File; /** * 创建目录 * 1.mkdir:确保上级目录存在,不存在创建失败 * 2.mkdirs:上级目录可以不存在 ...
 - insert 一条数据 然后拿出这条数据在数据库中生成的ID
			
[insert 一条数据 然后拿出这条数据在数据库中生成的ID] <insert id="insert" parameterType="management&quo ...
 - Feign【@FeignClient】
			
首先看一下@FeignClient注解的源码: package org.springframework.cloud.openfeign; import java.lang.annotation.Doc ...
 - MySQL安装与连接
			
1.安装 下载地址:https://dev.mysql.com/downloads/mysql/ 常见问题及解决办法:https://blog.csdn.net/chen97_08/article/d ...
 - vm启动时通过U盘安装的方法
			
vm启动时通过U盘安装的方法 增加一个以U盘为硬盘的方法,通过boot中设置该硬盘启动后重新ghost或者安装win10X64位. 在虚拟机中增加一个硬盘,第二部设置为物理硬盘,选在对 ...
 - 利用Python进行数据分析_Numpy_基础_2
			
Numpy数据类型包括: int8.uint8.int16.uint16.int32.uint32.int64.uint64.float16.float32.float64.float128.co ...
 - //统计报表-供水量统计主列表分页查询 Element-ui的分页插件
			
<!-- //分页 --> <div class="pagination">时间(月) <el-pagination @current-change= ...