牛客 2019西北工业(重现赛)H 最少拐弯数【BFS】

使用BFS算法解决从起点到终点的图中,寻找路径时最小拐弯数的问题。在遍历过程中,同一方向的节点一次性入队,并避免回溯到已走过的位置,以减少拐弯次数。
摘要由CSDN通过智能技术生成

最少拐弯数

-

在这里插入图片描述

输入

4 4
S..*
.*.*
....
.*.T

输出

2

-
题意:给你一个有起点与终点的图,求最小拐弯数。
-
BFS,往一个方向一直走(即同一方向一次全入队)。
注意遇已走过处应选择不更新(没必要),同时跳过继续走,而非停止脚步。

#include<cstdio>
#include<queue>
using namespace std;
int n,m;
char a[2017][2017];
int step[2017][2017];
int dx[]={
   0,1,0,-1};
int dy[]={
   1,0,-1,0};
struct S{
   
    int x,y;
}be,en;
 
int main(){
   
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;++i)for(int j=0;j<m;++j)step[i][j]=-1;
    getchar();
    for(int i=0;i<n;++i){
   
        for(int j=0;j<m;++j){
   
            scanf("%c",&a[i][j]);
            if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值