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

思路:用广搜从起点开始,遍历所有可达的点,再往下遍历直到到达终点,所以能保证得到的结果一定是最优解

#include<bits/stdc++.h>
using namespace std;
int n,sx,sy,ex,ey;//sx、sy为起始坐标,ex、ey为目的地坐标
char a[][];
int dx[]={,,-,};
int dy[]={,,,-};//四个方向
struct node{//结构体
int x,y,step;//step表示步数
};
queue <node> q;//建立一个队列
int bfs(int x,int y){//广搜函数
node road;
road.x=x,road.y=y,road.step=;//步数初始为0
q.push(road);
while(!q.empty()){
road=q.front();
q.pop();
for(int i=;i<;i++){
node now;//当前坐标和步数
now.x=road.x+dx[i],now.y=road.y+dy[i];
if(now.x>=&&now.x<=n&&now.y>=&&now.y<=n&&a[now.x][now.y]!=''){//判断是否越界并且不是店铺
if(now.x==ex&&now.y==ey) return now.step;//找到目的地坐标就返回
a[now.x][now.y]='';//标记防止重复走过
now.step=road.step+;//步数+1
q.push(now);//搜索下一层
}
}
}
}
int main(){
cin>>n;
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
cin>>a[i][j];
}
}
cin>>sx>>sy>>ex>>ey;
cout<<bfs(sx,sy);
return ;
}

洛谷P1746 离开中山路的更多相关文章

  1. 洛谷——P1746 离开中山路

    P1746 离开中山路 题目背景 <爱与愁的故事第三弹·shopping>最终章. 题目描述 爱与愁大神买完东西后,打算坐车离开中山路.现在爱与愁大神在x1,y1处,车站在x2,y2处.现 ...

  2. 洛谷 P1746 离开中山路

    P1746 离开中山路 题目背景 <爱与愁的故事第三弹·shopping>最终章. 题目描述 爱与愁大神买完东西后,打算坐车离开中山路.现在爱与愁大神在x1,y1处,车站在x2,y2处.现 ...

  3. 洛谷评测机BUG(应该是)

    此问题由洛谷p1746引出(之前出过类似问题没在意) 传送门 以下是两个差不多的程序,(只有main函数中的输入不同,第一个程序迷之WA,第二个程序AC) #include <bits/stdc ...

  4. 洛谷2583 地铁间谍 (UVa1025A Spy in the Metro)

    洛谷2583 地铁间谍(UVa1025A Spy in the Metro) 本题地址:http://www.luogu.org/problem/show?pid=2583 题目描述 特工玛利亚被送到 ...

  5. 洛谷P1783 海滩防御 分析+题解代码

    洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...

  6. 洛谷 P2802 回家

    题目链接 https://www.luogu.org/problemnew/show/P2802 题目描述 小H在一个划分成了n*m个方格的长方形封锁线上. 每次他能向上下左右四个方向移动一格(当然小 ...

  7. 洛谷P1342 请柬(SPFA)

    To 洛谷.1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计 ...

  8. 洛谷P2982 [USACO10FEB]慢下来Slowing down(线段树 DFS序 区间增减 单点查询)

    To 洛谷.2982 慢下来Slowing down 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) cows con ...

  9. 洛谷 P3956 棋盘 解题报告

    P3956 棋盘 题目描述 有一个\(m×m\)的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在的位置必须是有颜色的(不能 ...

随机推荐

  1. CS通用项目系统搭建——三层架构第二天

    一.编写配置文件 首先找到编写配置文件的位置.winform会在app.config.webform写在web.config中. <?xml version="1.0" en ...

  2. 重写COMBOXEDIT

    一.需求 C#种的下拉框ComboBox不支持下拉复选框列表与下拉树形列表等,系统中需要用到的地方使用了第三方组件,现在需要将第三方组件替换掉. 二.设计 基本思路:重写ComboBox,将原生的下拉 ...

  3. C++———Vector

    #include<algorithm> #include <vector> #include <iostream> #include <stdio.h> ...

  4. 2018-2019-20175302实验二《Java面向对象程序设计》实验报告

    2018-2019-2 学号实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 1. 面向对象程序设计 参考 http://www.cnblogs.com/rocedu/p/6 ...

  5. lets encrypt与openssl结合实现双认证

    lets encrypt,是一个免费的证书认证机构,不需要导入根证书.但是这个认证机构只能认证服务端的,如果想要实现双认证,lets encrypt就不行了. openssl可以自签发,可以进行双认证 ...

  6. java、php、.net关于web开发的区别

    一提到web开发,目前在世界上流行性的三个帮派就是php,java和asp.net,这个世界上的百分之99的网站或者类似的应用都是由这三种语言的开发,这里请原谅我忽视某些小众语言如python之类.三 ...

  7. SpringMVC 使用PUT请求遇到的问题小结

    最近在使用REST风格的URL进行CURD操作的学习过程中 发现使用PUT请求时候提交表单进行修改操作 报错:Request method 'PUT' not supported 在网上查找资料发现是 ...

  8. AsyncContext的startAsync()方法开启异步

    Servlet 3.0的异步处理支持特性,使Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程.在接收到请求之后,Servlet 线程可以将耗时的 ...

  9. Kafka 性能测试报告

    Producer command: kafka-producer-perf-test --topic _perf-test --num-records 10000000 --record-size 1 ...

  10. Non-decreasing Array LT665

    Given an array with n integers, your task is to check if it could become non-decreasing by modifying ...