最少步数&P1443 马的遍历
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 马的遍历的更多相关文章
- 洛谷 P1443 马的遍历
P1443 马的遍历 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘 ...
- 【bfs】洛谷 P1443 马的遍历
题目:P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 记录一下第一道ac的bfs,原理是利用队列queue记录下一层的所有点,然后一层一层遍历: 其中: 1.p ...
- 集训作业 洛谷P1443 马的遍历
这个题是个搜索,而且有是最少的步数,肯定就是广搜啦,不知道为什么的同学先去学习一下广搜吧. 养成好习惯,看见最少步数就去想想广搜(只是我自己觉得) 竟然这个题可以如此顺畅的想到广搜,感觉不难啊,但还有 ...
- 【洛谷】P1443 马的遍历
题目:https://www.luogu.org/problemnew/show/P1443 简单的BFS模板题——因为我写出来了. 分析过程: n*m矩阵,用二维数组 数据不大,二维数组稳了 先把二 ...
- 洛谷P1443 马的遍历
https://www.luogu.org/problemnew/show/P1443 很经典的搜索题了,蒟蒻用广搜打的 不说了,上代码! #include<bits/stdc++.h> ...
- 洛谷 P1443 马的遍历题解
题目链接:https://www.luogu.org/problem/P1443 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个 ...
- 【洛谷P1443 马的遍历】
题目链接(%%%jyy大佬) 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数 ...
- 洛谷 P1443 马的遍历
终于遇到一个简单纯粹一点的bfs了...... 题目链接:https://www.luogu.org/problemnew/show/P1443 题目是求到达一个点的最短步数 也就是说我只要bfs遍历 ...
- 洛谷P1443 马的遍历【BFS】
题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...
随机推荐
- 操作MongoDB好用的图形化工具,Robomongo -> 下载 -> 安装
一 下载 点击下载 -> https://robomongo.org/download 二 安装 直接下一步就行了 -> 择安装位置之后 -> 确认安装
- 基于Dockerfile搭建JAVA Tomcat运行环境
前言 在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个java tomcat运行环境,虽然也初见成效,但很累人.如果依靠依靠脚本构建一个Tomcat容器实例,一个命令可以搞定,何乐而不 ...
- 【转】QT中添加的资源文件qrc时的路径问题小结
@2019-06-13 [小记] QT中添加的资源文件qrc时的路径问题小结
- 9.1.远程过程调用协议_RPC
6. RPC 6.1.什么是 RPC RPC(Remote Procedure Call Protocol)远程过程调用协议 通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个 ...
- SCU 4584 tarjan+最大权闭合子图
把每个点的点权当做是W[i]-V[i] 题目一眼是最大权闭合子图 但是可能会有重边自环和环 需要先搞成简单图 再tarjan缩点 缩点后就是裸的最大权闭合子图 #include<bits/std ...
- error LNK2019 : unresolved external symbol Zbar配置问题
原文链接:https://blog.csdn.net/MengchiCMC/article/details/77871714 出现error LNK2019 : unresolved external ...
- vue插件——滚动监听 vue-scrollwatch
造轮子的目的: 做项目的时候需要一个滚动监听的功能,html结构已经都写好了,不想使用vue组件的方式来写,因为不想改造html结构,于是花了几个小时做了一个简单的,使用vue指令方式来做的,项目上够 ...
- SSH框架整合报错org.springframework.web.context.ContextLoaderListener
是因为在导入的jar包中缺少了一个 org.springframework.web_3.1.4.release.jar 在网上下载即可 下载地址: http://www.java2s.com/Code ...
- 使用IDEA 搭建一个 SpringBoot + Hibernate + Gradle 项目
现在创建个项目: 勾上 自已 需要东西.(这里作为演示) maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} 关闭项目 ...
- webpack编译sass报错找不到module /css-loader/index.js... || 安装node-sass报错
今天无论在家还是在公司,安装node-sass总是失败,或安装成功了,使用webpack编译sass报错,说找不到module,按照提示的错误我找了node_modules下的css-loader,发 ...