枚举,时间回溯和深搜

本文介绍了枚举法的基本概念和优缺点,并通过例题展示了如何运用枚举法解决数学问题。接着,文章讲解了时间回溯法和深度优先搜索(DFS)的原理,通过全排列问题和24点游戏的实例,阐述了这些方法在解决问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    前情提要:这是我来福州的第一天,自然是兴奋得不得了,我发现这里的老师讲课虽然快了一点,但还是很详细的。晚上回到宾馆,网卡的不要不要的,我整个人都快哭了。。。老师还说为他得到的我们的情况是我们全是省一省二附近。。。。。。能有这水平的好像都去了提高组,(无力吐槽)我们连复赛都没进哭

                                                                     

 

                                        枚举法

    

枚举法,本质上就是搜索算法。

  • 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素。
  • 用题目中给定的检验条件判定哪些是无用的,哪些是有用的。能使命题成立。即为其解。
  • 优点:算法简单,在局部地方使用枚举法,效果十分的好
  • 缺点:运算量过大,当问题的规模变大的时候,循环的阶数越大,执行速度越慢。

    例题 1:

    AB*A=CCC 求其所有的可能性。

    解法:

 

    枚举所有的A和B,两重循环1-9加判断,81次运行即可完成。如果还要优化枚举A的循环可以从3开始。

    拓展一下:AA*AB=CCBB且A*B=CD。

                                                                   

                                                                    时间回溯

    回溯法,又称试探法。一般需要遍历解空间,时间复杂度概况:子集树Ω(2^n),排序树Ω(n!),暴力法。

    递归回溯是搜索的实现方式之一,这与dfs和bfs有一定关系,这个说简单点就是进去出来顺便组个答案。

    例题:

    全排列,n个数输出从1到n的n!个全排列。

      解法:

      利用递归和回溯从1到n逐次寻找方法即排列方式。

 

                                                                           DFS

     

        学名:深度优先搜索。

       用途:1.通过遍历所有路径,来判断两点之间是否连通。(最常用)

                 2.因为要走遍所有可能路径,所以也可以记录 能够到达的 位置 的个数。

       特点:一搜到底。即走遍所有可能的路径。

       难点:如何将题目抽象成一张

       例题:

       给出4个1到13的数,计算24点。

       解法:

     进行dfs,找能达到24点的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值