• 搜索与图论一


    1.关于搜索问题,DFS是没有一个固定的模板的,但是也可以进行一下总结

    DFS  stack  O(n)   没有固定模板(但是有一般思路)   适用于对空间要求较高

    BFS   queue  O(2^n)  有固定模板  有最短性质(对各边权重为1的时候)

    2.DFS函数书写思路伪代码:

    void   DFS (数据类型  参数,数据类型  参数)

    {

      if (出口条件)  输出;

      for(搜索深度)if (新点)  新点赋值;标记为旧点;递归下一层;回溯处理(数值恢复,新旧状态恢复);

    }

    3.BFS函数书写思路伪代码:

    queue<——初始化

        |

    while(queue)

    {
     auto t <——队头元素

       |

      拓展 t 的所有距离为1 的邻点 x :if ( x 为走过&&可以走)x入队,更新距离数组

    }

    4.DFS实战分析:

    842. 排列数字

    给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。

    现在,请你按照字典序将所有的排列方法输出。

    输入格式

    共一行,包含一个整数n。

    输出格式

    按字典序输出所有排列方案,每个方案占一行。

    数据范围

    1n71≤n≤7

    输入样例:

    3
    

    输出样例:

    1 2 3
    1 3 2
    2 1 3
    2 3 1
    3 1 2
    3 2 1
    第一次思路:
    1.确定搜索类型    DFS因为从数据规模看,这是个n(n!),从题目描述,也没有最短路性质字眼描述,试了一下,觉得好搞,BFS明显是一层一层搜的,不怎么合适
    2.先找出搜索顺序  n个空位,每个空位进行搜索
    3.确定搜索树  画出来了。
    4.剪枝优化  暂时没想到,觉得也剪不掉,题目思路比较清晰
    那就开始第一次尝试
    #include<iostream>
    没写完,觉得这样写性价比不高,时间很大一部分在这个文档排版上了,不划算。占坑,后面来弄
  • 相关阅读:
    激光雷达slam之LOAM中的坐标转换与IMU融合
    记录一次失败的coding面
    因子图相关理论汇总
    [ICP]手推SVD方法
    SLAM中的卡方分布
    第五篇 openvslam建图与优化模块梳理
    第四篇 跟踪过程以及openvslam中的相关实现详解
    第三篇 视觉里程计(VO)的初始化过程以及openvslam中的相关实现详解
    第二篇 特征点匹配以及openvslam中的相关实现详解
    第一篇 特征提取以及openvslam中的相关实现详解
  • 原文地址:https://www.cnblogs.com/WAsbry/p/13636168.html
Copyright © 2020-2023  润新知