最少步数

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描述

这有一个迷宫,有0~8行和0~8列:

1,1,1,1,1,1,1,1,1
 1,0,0,1,0,0,1,0,1
 1,0,0,1,1,0,0,0,1
 1,0,1,0,1,1,0,1,1
 1,0,0,0,0,1,0,0,1
 1,1,0,1,0,1,0,0,1
 1,1,0,1,0,1,0,0,1
 1,1,0,1,0,0,0,0,1
 1,1,1,1,1,1,1,1,1

0表示道路,1表示墙。

现在输入一个道路的坐标作为起点,再如输入一个道路的坐标作为终点,问最少走几步才能从起点到达终点?

(注:一步是指从一坐标点走到其上下左右相邻坐标点,如:从(3,1)到(4,1)。)

输入
第一行输入一个整数n(0<n<=100),表示有n组测试数据;
随后n行,每行有四个整数a,b,c,d(0<=a,b,c,d<=8)分别表示起点的行、列,终点的行、列。
输出
输出最少走几步。
样例输入
2
3 1  5 7
3 1  6 7
样例输出
12
11

思路:一道很普通的广搜,确实是太长时间没做了生疏了。需要注意的一点就是要考虑起点和终点相同的这种情况。

ac代码:

#include<stdio.h>//二维数组的初始化需要放在定义的时候
#include<queue>//如果终点和起点一样步数应该为0.
#include<string.h>
#define INF 0x3f3f3f
using namespace std;
struct node{int x,y,t;
}a,temp;
int x1,y1,x2,y2,cx[4]={0,0,1,-1},cy[4]={-1,1,0,0},vis[10][10];
int map[9][9]={1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,1,1,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,};
int jud(int x,int y){if(x<0&&x>8&&y<0&&y>8)return 0;if(map[x][y]==1||vis[x][y]==1)return 0;
return 1;
}
void bfs(){memset(vis,0,sizeof(vis)); queue<node>q;int ans=INF;a.x=x1;a.y=y1;a.t=0;vis[a.x][a.y]=1;q.push(a);while(!q.empty()){a=q.front();q.pop(); for(int i=0;i<4;i++){temp.x=a.x+cx[i];temp.y=a.y+cy[i];temp.t=a.t+1;if(jud(temp.x,temp.y)){vis[temp.x][temp.y]=1;if(temp.x==x2&&temp.y==y2)if(ans>temp.t)ans=temp.t;q.push(temp);}}}printf("%d\n",ans);
}
int main(){int T;scanf("%d",&T);while(T--){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);if(x1==x2&&y1==y2)printf("0\n"); elsebfs();}return 0;
} 

nyoj--58--最少步数相关推荐

  1. NYOJ ~ 58 ~ 最小步数(DFS)

    代码如下: #include<stdio.h> #include<iostream> #include<algorithm> #include<string. ...

  2. NYOJ ~ 58 ~ 最小步数(BFS)

    代码如下: #include<bits/stdc++.h> using namespace std; const int MAXN = 15; struct Node { int x,y, ...

  3. 最少步数----深搜

    最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1  1,0,0,1,0,0,1,0,1 ...

  4. C语言求解华容道游戏最少步数及移动过程

    华容道游戏简要描述 在一个5行4列的方格区域中,摆放曹操(2*2),五虎将(1*2或2*1),蜀兵(1*1)共占18个方格,其中剩余2个方格用于移动板块,玩家需要通过移动其中板块将曹操移动到出口,并且 ...

  5. T1330 最少步数(#Ⅱ- 8)(广度优先搜索)

    [题目描述] 在各种棋中,棋子的走法总是一定的,如中国象棋中马走"日".有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按"日"走,也能如象 ...

  6. 最少步数(dfs + bfs +bfs优化)

    最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1  1,0,0,1,0,0,1,0,1 ...

  7. 信息学奥赛一本通(1330:【例8.3】最少步数)

    1330:[例8.3]最少步数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 10314     通过数: 5549 [题目描述] 在各种棋中,棋子的走法总是一定 ...

  8. 最少步数(信息学奥赛一本通-T1330)

    [题目描述] 在各种棋中,棋子的走法总是一定的,如中国象棋中马走"日".有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按"日"走,也能如象 ...

  9. NYOJ-58 最少步数

    最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1  1,0,0,1,0,0,1,0, ...

  10. 1330:【例8.3】最少步数

    1330:[例8.3]最少步数 [题目描述] 在各种棋中,棋子的走法总是一定的,如中国象棋中马走"日".有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按&qu ...

最新文章

  1. 搭建struts2.1.6环境所需要的包(7个)
  2. OpenStack-MitakaCentos7.2双节点搭建--(三)Glance(镜像服务)
  3. ajax和rxjs,javascript – RxJS 5 Observable和Angular2 http:调用ajax一次,保存结果,随后的ajax调用使用缓存结果...
  4. 作者:陈康(1976-),男,博士,清华大学计算机科学与技术系、深圳清华大学研究院、浙江清华长三角研究院鄞州创新中心副教授...
  5. 在VS2005下搭建和使用CppUnit
  6. ios 自己创建的动态frameworks 怎么发布_苹果 iOS 14 修复 2 年来的一个bug 果粉炸锅:原来不是自己手残...
  7. idea docker 一键部署实战
  8. 2021-2025年中国电影行业市场供需与战略研究报告
  9. ios开发之cocoapods导入新三方库报错RuntimeError - [Xcodeproj] Unknown object version.
  10. mysql 用户列表数据结构_MySQL数据结构-行结构
  11. XINS 3.0 正式版发布,远程 API 调用规范
  12. C语言学习:C语言编译流程
  13. GIS应用技巧之景观格局分析(三)
  14. 组织人事类主数据业务梳理以及流程编排
  15. 25.有5个人做在一起, 问第五个人多少岁? 他说比第四个人大2岁. 问第四个人岁数, 他说比第是三个人大2岁. 问第三个人, 又说比第二人大两岁. 问第二个人, 说比第一个人大两岁. 最后问第一个人
  16. 记一次惊险的文件恢复经历Eclipse saved my day
  17. SPI总线通信——基于STM32MP157A
  18. EXCEL函数之“VLOOKUP”
  19. CCF考试——201412-4最优灌溉
  20. 《苏宁易购:商品详情系统架构设计》读后感

热门文章

  1. git push 提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。的解决办法
  2. 云单元架构,如何赋能数字化转型呢?
  3. 数据工作本质:从业务中来,到业务中去
  4. “Java引领技术人生”巡讲活动圆满结束
  5. 优化理论07-----拟牛顿法、拟牛顿方程、对称秩二更新公式、BFGS、DFS、Broyden族、Huang’s Family
  6. PHP获取对象的hashcode_php 字符串转hashcode(包括中文)
  7. 基于单片机的自动加热水壶控制器代码_应用于实时温度控制的单片机设计
  8. 苹果手机说明书_知科技新鲜事 | 华为Mate40系列手机壳曝光:3.5mm耳机孔
  9. 华数机器人编程语言_招新 | 海大最「酷」的科创团队,确定不来了解一下吗?...
  10. 蓝桥杯2020年第十一届Python省赛第一题-门牌制作