鱼C论坛

 找回密码
 立即注册
查看: 5335|回复: 32

[技术交流] 新手必看·DFS快速入门(鱼币~~~)

[复制链接]
发表于 2024-2-4 21:36:46 | 显示全部楼层
本帖最后由 陈尚涵 于 2024-2-4 21:38 编辑

个人认为这个仅仅只是学到了dfs的思路,还可以进一步进阶,找一些二维的搜索题作为练习巩固(至少我学的时候就是这么学的),二维搜索的学习可以解决很多问题(指暴力
这里献上二维dfs的模板
  1. type dfs(int x, int y, args){ // 根据情况定义类型及其他参数
  2.         ...; // 特殊情况
  3.         for (int i = 0; i < len; i++){ // 对每个方向搜索
  4.                 // 建立新坐标
  5.                 int xx = x + dx[i];
  6.                 int yy = y + dy[i];
  7.                 // 边界/特殊情况=>失败
  8.                 if (...){
  9.                         continue;
  10.                 }
  11.                 // 防止重复搜索,死循环
  12.                 vis[xx][yy] = true;
  13.                 // 成功/抵达/特殊情况
  14.                 if (...){
  15.                         ...;
  16.                         return;
  17.                 }
  18.                 dfs(xx, yy, args); // 继续向后搜索
  19.                 vis[xx][yy] = false;
  20.         }
  21. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-4 21:42:43 | 显示全部楼层
学习编程中的Ben 发表于 2024-2-4 21:40
二维的讲解太麻烦了。。。
八皇后那道题目就是二维.但太复杂了

我刚学的时候第一道dfs题就是二维
复杂倒是还好,领悟了的话那确实就领悟了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-4 21:46:32 | 显示全部楼层

回帖奖励 +2 鱼币

学习编程中的Ben 发表于 2024-2-4 21:40
反正原理一样。把我那几道题做了差不多就掌握了

这种题中dfs只是一个暴力查找的思路,而二维的思路确实是一样的,但是过程差别很大
毕竟升维后要考虑的因素会非常多,但是只要掌握了还是很有用的,很多题就可以直接薄纱(指暴力被杀)
总之即便是二维的dfs也是基础的内容如果要学习更多的话,还是先学习一下暴力比较好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-4 21:48:31 | 显示全部楼层
学习编程中的Ben 发表于 2024-2-4 21:45
如果刚学编程直接上二维不太好吧.
会把人看得头晕.一维能够更快的理解原理
之后多刷题就好了

二维dfs其实算基础的,毕竟只是个偏分的保利算法,难度嘛,emmm,除了解除死循环的代码外,新手只要认真做了我觉得其他代码可以写出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-27 06:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表