美文网首页
DFS-数组

DFS-数组

作者: say_no | 来源:发表于2017-03-05 11:52 被阅读0次

题目原意:

小哼去解救小哈,地图为矩阵,上面有许多障碍物。求解救小哈的最短路径。


代码:

#include <stdio.h>
int n,m,p,q,min=999999999;
int a[51][51],book[51][51];
void dfs(int x,int y,int step)
{
    int next[4][2]={
        {0,1},//向右走
        {1,0},//向下走
        {0,-1},//向左走
        {-1,0}//向上走
    };
    int tx,ty,k;
    //判断是否到达小哈的位置
    if(x==p&y==p)
    {
        //更新最小值
        if(step<min)
            min=step;
        return;//请注意这里的返回
    }
    //枚举四种走法
    for(k=0;k<=3;k++)
    {
        //计算下一个点的坐标
        tx=x+next[k][0];
        ty=y+next[k][1];
        //判断是否越界
        if(tx<1||tx>n||ty>m||ty<1)
            continue;
        //判断该点是否为障碍物或者已经在路径中
        if(a[tx][ty]==0&&book[tx][ty]==0)
        {
            book[tx][ty]=1;
            dfs(tx,ty,step+1);
            book[tx][ty]=0;
        }
    }
    return ;
}
int main()
{
    int i,j,startx,starty;
    //读入n和m,n为行,m为列
    scanf("%d %d",&n,&m);
    //读入迷宫
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    //读入起点和终点坐标
    scanf("%d %d %d %d",&startx,&starty,&p,&q);
    //从起点开始搜索
    book[startx][startx]=1;//标记起点己经在路径中,防止后面重复走
    //第一个参数是起点的x坐标,第二个参数是起点y坐标,第三个参数是起始步数为0
    dfs(startx,starty,0);
    return 0;
}

相关文章

  • DFS-数组

    题目原意: 小哼去解救小哈,地图为矩阵,上面有许多障碍物。求解救小哈的最短路径。 代码:

  • DFS-栈

    递归需要消耗额外的资源,这些资源是:1.递归由于是函数调用自身,而函数调用是有时间和空间的消耗的:每一次函数调用,...

  • dfs-岛屿面积

    LC-695这个做的比较快,一遍AC,之前在百练上做过一道一模一样的用dfs递归就可以 问题来了:思考 如何用栈实...

  • DFS-常规/热身

    DFS一般的流程是这样的:从一个点出发,遍历其中一个邻居节点w, 然后接着遍历w的一个邻居节点,当遍历到最后一个节...

  • DFS-矩阵类

    这类问题一般给一个矩阵,要求矩阵内满足条件的一些元素。这类问题的一般做法是:先遍历整个矩阵,并找到要DFS的位置/...

  • 数组

    数组数组数组数组数组数组数组数组数组

  • OS/PFS/DSS/DFS-各种生存指标的区别

    OS 总体生存期:Overall Survival定义: 结局指标是死亡时间,这个死亡是任何原因导致的死亡都算进去...

  • JavaScript - 5.数组<增删改查>

    数组 Array 数组 - 增 数组 - 删 / 改 数组 - 查 数组 - 自动 toString() 数组 -...

  • PHP数组使用

    数组定义 数组增、删、改 数组查询 数组排序 数组合并、分割 数组比较、去重复 数组长度 数组遍历 数组转换 其他...

  • 》》》PHP初入---(三)

    数组定义 1.索引数组:数组下标是整型的 声明数组: 访问数组: count(数组)--获取数组长度 查看数组所有...

网友评论

      本文标题:DFS-数组

      本文链接:https://www.haomeiwen.com/subject/bhvsgttx.html