第四周总结博客

目录

 一:这周看的资料:

二:收获: 

题型分类:

1.给定条件,建立棋盘,向四个方向DFS寻找符合条件的值

2.给定条件,建立棋盘,向八个方向DFS寻找符合条件的值

3.筛选符合条件数据/跳过不符合条件的数据

4.求连通块的个数,判断连通块之间关系->DFS漫水填充法

5:类似于求组合数的特定方向DFS

6:BFS解决最短路径问题

优化剪枝技巧

1:最优解剪枝

2:调整搜索起始位置

3:记忆化搜索

搜索与其他知识的联系

1.图的遍历

BFS新题型

        1:多源BFS问题,

 目前我能解决的问题:

三:个人感受


 一:这周看的资料:

目前下面这41个题目都读了一遍,ac7题,截至周日晚,没有完成50题的既定目标。

  1. [NOIP2002 普及组] 选数 - 洛谷
  2. [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins - 洛谷
  3. 求细胞数量 - 洛谷
  4. 海战 - 洛谷
  5. [USACO10OCT]Lake Counting S - 洛谷
  6.  [NOIP2001 普及组] 求先序排列 - 洛谷
  7.  [COCI2019-2020#1] Lutrija - 洛谷
  8. 南蛮图腾 - 洛谷
  9.  [USACO10MAR] The Rock Game S - 洛谷
  10.  拯救oibh总部 - 洛谷
  11. 「JYLOI Round 1」箭头调度 - 洛谷
  12. 全排列问题 - 洛谷
  13.  取数游戏 - 洛谷
  14. [USACO06DEC]Cow Picnic S - 洛谷
  15. 最大食物链计数 - 洛谷
  16.  [NOIP2017 提高组] 奶酪 - 洛谷
  17. [USACO06OCT] Cows on Skates G - 洛谷
  18.  奇怪的电梯 - 洛谷
  19.  [USACO1.5]八皇后 Checker Challenge - 洛谷
  20.  [USACO08JAN]Cow Contest S - 洛谷
  21.  [JLOI2009]二叉树问题 - 洛谷
  22.  树的分解 - 洛谷
  23.  [NOI2011] 道路修建 - 洛谷
  24.  [YsOI2020]植树 - 洛谷
  25.  让我们异或吧 - 洛谷
  26.  选择题 - 洛谷
  27.  [COCI2015-2016#3] MOLEKULE - 洛谷
  28.  [USACO17FEB]Why Did the Cow Cross the Road III S - 洛谷
  29. 无序字母对 - 洛谷
  30.  `SEARCH` - 洛谷
  31.  Ryoku 的探索 - 洛谷
  32.  [JRKSJ R3] a question - 洛谷
  33. [NOIP2017 普及组] 棋盘 - 洛谷
  34.  [USACO06DEC]Wormholes G - 洛谷
  35.  油滴扩展 - 洛谷
  36.  贪吃虫 - 洛谷
  37.  [USACO09JAN]Laserphones S - 洛谷
  38.  [USACO08NOV]Guarding the Farm S - 洛谷
  39.  [USACO06NOV]Big Square S - 洛谷
  40. 封锁阳光大学 - 洛谷
  41. 填涂颜色 - 洛谷
  42. [USACO07OCT]Obstacle Course S - 洛谷

二:收获: 

题型分类:

1.给定条件,建立棋盘,向四个方向DFS寻找符合条件的值

        这类题目往往带有例如质数筛选之类的条件判断,先用dfs列举所有组合,然后判断每一种组合是否符合条件。

2.给定条件,建立棋盘,向八个方向DFS寻找符合条件的值

        这类问题类似于四个方向的dfs,在四个方向的基础上增加了右上,右下,左上,左下四个方向,这两类问题基本上拿一套代码小改一下就能AC,算是比较简单。

3.筛选符合条件数据/跳过不符合条件的数据

        这类问题核心是搜索一步,判断该组数据是否符合条件是否条件,如果符合条件就记录,继续搜索,不断更新符合条件的最优解。直到搜索到边界,输出最优解。

4.求连通块的个数,判断连通块之间关系->DFS漫水填充法

   听起来比较高大上,其实就是涂色,把在一起的一堆密闭数据标记成一个特定的数值  ,可以去搜索被标记的点的区域的个数搜索周围没被标记的为0的区域,从四周漫水,如果水能接触到说明中间被围了起来,记录闭合的区域

5:类似于求组合数的特定方向DFS

        在dfs函数中传入方向参数。

6:BFS解决最短路径问题

       重要的是如何标记走过的步数?如何存储走过的路径?

优化剪枝技巧

1:最优解剪枝

         先手动算出一个可能的非最优解,如果接下来的解都超过这个解,那后面的就都不用算了,能直接剪枝。

2:调整搜索起始位置

        有些题目答案比较靠后,调整开始位置,能更快找到答案。

3:记忆化搜索

        算法:记忆化搜索_Insomnialoveffff的博客-CSDN博客_记忆化搜索,将搜索过的值记录,能够避免重复搜索

搜索与其他知识的联系

1.图的遍历

        DFS和BFS是图遍历的两种常用方法。

BFS新题型

        1:多源BFS问题,

        在某些题目中,给出多个起点以及多个终点,要求输出从某一起点出发到达终点的最短距离
利用常规bfs去从每个终点开始遍历,保留最短距离是可行的,但是时间复杂度往往太大,出现超时的错误。
        多源bfs:我们假设一个虚拟起点距离题目中给出的起点距离都为0,从该起点出发bfs遍历,当第一次遍历到目标终点时,这个距离一定是最小的。在进一步,实际代码中可以不设置虚拟起点,而是将所有起点直接加入队列中(理论上等价)。

 目前我能解决的问题:

        我目前能够独立写出连通块问题,走迷宫。但是剪枝目前做不到,仅仅能够保证最基本的AC.

三:个人感受

        最大的感受就是纸上得来终觉浅,绝知此事要躬行。很多算法自己想的明白,用通俗的语言能够表述出来,但是每当真正实践写代码就写不出,甚至写个条件筛选函数都会出问题。必须加强实践能力,积累代码经验。多去研究别人写的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值