【DFS笔记】对dfs(index,状态)一类问题的思考
当问题说到一共有n个数/n个选择,且按顺序依次选择时,一般都会用到这样的dfs模板
dfs(index,state){if(index==n)return;if(state not valid)cut; for(choice):dfs(index+1,f(state,g(index)));
}
比如说8皇后问题:从8行依次做出选择,选择8次。状态参数为vis标记。
等等........
下面说说我对这个模板的理解:
首先,if放在dfs前面,就是说在选择之前就做了判断,这是什么意思呢?
(1)每一次dfs时,index总是增1,因为dfs调用的本质是做了一次选择,所以index参数可以理解为做选择的次数。当index传入0时,因为要做n次选择,所以index==n时才会return,而不是在n-1时return
(2)如果传入0,那么if判断时,选择的次数是已经选择的下标+1。因为下标0也算一次选择,所以下标0选择完后,在if判断时index为1,以此类推。
(3)状态参数就是做了index次选择后的状态。因为状态参数在做选择的时候更新,所以在if判断
时,对应的状态就是做了index次选择的状态(index初始传入0)
(4)因为在没有改变参数的值,所以这个模板自带回溯功能。
做了3次选择后,if判断时,index为3,下标为2的已经做完选择,状态参数是0~2状态。
【DFS笔记】对dfs(index,状态)一类问题的思考相关推荐
- c++输出方块_C/C++编程笔记:DFS 深度优先搜索的基本思想,含实例讲解
采用搜索算法解决问题时,需要构造一个表明状态特征和不同状态之间关系的数据结构,这种数据结构称为结点.不同的问题需要用不同的数据结构描述. 根据搜索问题所给定的条件,从一个结点出发,可以生成一个或多个新 ...
- 何时使用hadoop fs、hadoop dfs与hdfs dfs命令
hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...
- 何时使用hadoop fs、hadoop dfs与hdfs dfs命令(转)
hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...
- Git笔记(5) 状态记录
Git笔记(5) 状态记录 1. 文件的状态变化周期 2. 检查当前文件状态 3. 跟踪新文件 4. 暂存已修改文件 5. 状态简览 6. 忽略文件 7. 查看已暂存和未暂存的修改 7.1. 查看未暂 ...
- 蓝桥杯笔记:DFS(深度优先搜索)解决问题
DFS: 深度优先搜索: 访问当前的元素后,递归访问元素的邻接元素(找出所有下一步的可能元素,判断是否能访问),撤回当前元素访问 dfs(当前状态) {//递归终止条件if(当前状态==结束状态) { ...
- DFS 简单的剪枝和状态压缩 海贼王之伟大航路
今天碰到了这样一道题目,是一个关于深搜的题目 4124:海贼王之伟大航路 查看 提交 统计 提示 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 "我是要成为海贼王 ...
- Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
1. Trees Tree is a recursive structure. 1.1 math nodes https://class.coursera.org/principlescomputin ...
- python 拓扑排序 dfs bfs_bfs与dfs的优缺点?
刚好今天作业有道题问了相似问题= =,顺便来回答一下 DFS和BFS主要差别在于BFS遍历方式是围绕着根结点一圈一圈(level by level)向外遍历,借助队列的方式实现,而DFS的方式则是从一 ...
- Head First设计模式读书笔记九 第十章 状态模式
过去的笔记链接 https://blog.csdn.net/u011109881/article/details/60158137 状态模式实例 用Java设计糖果机吧 大致流程: 上图中,有四种状态 ...
最新文章
- 程序员之路,蛇年快加速!
- ROS学习笔记九:ROS工具
- 2017年10月23日23:58:04
- linux 查看服务器网络连接,1.3.2 查看Linux服务器的网络连接(2)
- API标准化成为技术团队面临的最大挑战
- java 方法 示例_Java语言环境getDisplayCountry()方法与示例
- 《iOS网络编程与云端应用最佳实践》微博转发送书了!
- OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)
- 利用ssh-copy-id无需密码登录远程服务器
- C# 从Object对象中读取属性的值
- webpack遇见的坑:Please install 'webpack-cli' in addition to webpack itself to use the CLI.
- 斐讯K2破解任意校园网教程
- 破局:技术视野与规划
- LMV324MTX单通道,双通道和四通道通用低电压轨至轨输出运算放大器TI
- PG中XLOG日志结构
- SQL grouping
- 人工智能就业方向及前景,前景如何?好就业吗?
- 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)
- 常见的200,404,503等HTTP状态码大全
- 向日葵远程看不到qq界面
热门文章
- 【转】Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES
- ASP.NET MVC3+EF4+Oracle入门实例(一)
- HDU2566 统计硬币【暴力】
- CCF201912-2 回收站选址(100分)【序列处理】
- 树莓派3B+64位系统烧制与软件安装
- HDU1235 统计同成绩学生人数【水题+序列处理】
- CCF NOI1032 菱形
- 学术论文写作的 paper、code 资源
- 逻辑学 —— 复杂问题谬误
- 【清单】语言、框架及库的官方文档、examples、tutorials