1330:【例8.3】最少步数

s数组:记录(1,1)到达每一点需要的最少步数

s[1][1]自然为 0,其余初始化为 -1

que数组:que[#][1] 表示(1,1)可到达点的 x 坐标

que[#][2] 表示(1,1)可到达点的 y 坐标

que[#][3] 表示(1,1)可到达点的 最少步数

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>
using namespace std; int dx[]={-,-,-,,,,,,,-,-,-},
dy[]={-,-,-,-,-,-,,,,,,}; int main()
{
int s[][],que[][]={},x1,y1,x2,y2;
memset(s,0xff,sizeof(s)); //s数组初始化
int head=,tail=; //初始位置入队
que[][]=;que[][]=;que[][]=;
cin>>x1>>y1>>x2>>y2;
while(head<=tail)
{
for(int d=;d<=;d++) //拓展十二个方向
{
int x=que[head][]+dx[d];
int y=que[head][]+dy[d];
if(x>&&y>) //保证不出界
if(s[x][y]==-) //未走过
{
s[x][y]=que[head][]+;
tail++;
que[tail][]=x;
que[tail][]=y;
que[tail][]=s[x][y];
if(s[x1][y1]>&&s[x2][y2]>)
{
cout<<s[x1][y1]<<endl;
cout<<s[x2][y2]<<endl;
return ;
}
}
} head++; } }

以上我方代码已修改

没修改前:

(如果你发现)

原因是:

(去掉“pause”之后就。。就。。可以了)

P1443 马的遍历

题解

BFS队列实现,和上面那个题本质是一样的

注意判断行走的是有效区域!!!

代码

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<cstdlib> using namespace std; inline int read()
{
int ans=;
char last=' ',ch=getchar();
while(ch<''&&ch>'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=ans*+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} int n,m,sx,sy;
int pan[][];
struct node
{
int x,y,step;
};
queue<node> q;
int dx[]={-,-,-,-,,,,};
int dy[]={-,,-,,-,,-,}; int main()
{
n=read();m=read();sx=read();sy=read();
memset(pan,-,sizeof(pan));
pan[sx][sy]=;
q.push((node){sx,sy,});
while(!q.empty())
{
node now=q.front();
q.pop();
for(int i=;i<;i++)
{
int xx=now.x +dx[i];
int yy=now.y +dy[i];
if(pan[xx][yy]==-&&xx>=&&xx<=n&&yy>=&&yy<=m)
{
pan[xx][yy]=now.step +;
q.push((node){xx,yy,pan[xx][yy]}) ;
}
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
printf("%-5d",pan[i][j]);
printf("\n");
}
return ;
}

(但是之前我试过注释掉它 ybt 瓦特掉了所以显示一个点运行错误。。)

ybt就是欺负我这个lao shi ren

最少步数&P1443 马的遍历的更多相关文章

  1. 洛谷 P1443 马的遍历

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

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

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

  3. 集训作业 洛谷P1443 马的遍历

    这个题是个搜索,而且有是最少的步数,肯定就是广搜啦,不知道为什么的同学先去学习一下广搜吧. 养成好习惯,看见最少步数就去想想广搜(只是我自己觉得) 竟然这个题可以如此顺畅的想到广搜,感觉不难啊,但还有 ...

  4. 【洛谷】P1443 马的遍历

    题目:https://www.luogu.org/problemnew/show/P1443 简单的BFS模板题——因为我写出来了. 分析过程: n*m矩阵,用二维数组 数据不大,二维数组稳了 先把二 ...

  5. 洛谷P1443 马的遍历

    https://www.luogu.org/problemnew/show/P1443 很经典的搜索题了,蒟蒻用广搜打的 不说了,上代码! #include<bits/stdc++.h> ...

  6. 洛谷 P1443 马的遍历题解

    题目链接:https://www.luogu.org/problem/P1443 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个 ...

  7. 【洛谷P1443 马的遍历】

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

  8. 洛谷 P1443 马的遍历

    终于遇到一个简单纯粹一点的bfs了...... 题目链接:https://www.luogu.org/problemnew/show/P1443 题目是求到达一个点的最短步数 也就是说我只要bfs遍历 ...

  9. 洛谷P1443 马的遍历【BFS】

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

随机推荐

  1. Delphi 画笔

    樊伟胜

  2. 网络初级篇之VLAN间路由(原理与配置)

    一.VLAN间的路由 由于VLAN隔离了二层广播域,也间接的隔离了各个VLAN之间的其他二层流量交换,这样导致属于不同VLAN之间的用户不能进行二层的通信.只能经过三层的路由转发才能将报文从一个VLA ...

  3. DBUtils封装数据库返回对象的各种方法

    ①ArrayHandler:     将查询结果的第一行数据,保存到Object数组中       ②ArrayListHandler     将查询的结果,每一行先封装到Object数组中,然后将数 ...

  4. 4.5. scrapy两大爬虫类_Spider

    一:Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取 的 ...

  5. 1.Shell脚本

    1.Shell脚本 可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环.分支等高级编 程语言才有的控 ...

  6. 认识并初步应用GitHub

    好好学习,天天向上 一.这是一个简单的开头 GIT的地址 https://github.com/Notexcellent GIT的用户名 Notexcxllent 学号后五位 82405 博客地址 h ...

  7. D - Nested Segments CodeForces - 652D (离散化+树桩数组)

    D - Nested Segments CodeForces - 652D You are given n segments on a line. There are no ends of some ...

  8. poj1734 Sightseeing trip[最小环]

    一个最小环裸题.最小环的两种求法dijkstra和Floyd直接参见这里我就是从这里学的,不想写了. 注意这里最重要的一个点是利用了Floyd的dp过程中路径上点不超过$k$这一性质,来枚举环上最大编 ...

  9. Redux应用多人协作的思路和实现

    先上Demo动图,效果如下: 基本思路 由于redux更改数据是dispatch(action),所以很自然而然想到以action作为基本单位在服务端和客户端进行传送,在客户端和服务端用数组来存放ac ...

  10. (web)个人项目(挖宝网)

    前台:使用bootstrap. 后台:使用layui. 数据库:mysql 下载地址:https://github.com/oukele/wabaowangDemo(数据库文件忘记上传,我在展示功能结 ...