递归回溯 暴力枚举 (总结)
来源:互联网 发布:java创建对象 编辑:程序博客网 时间:2024/06/05 20:49
怎么说呢? 一点一点记吧,哪些要注意的记下来以后再给自己翻翻的时候看的。
总之! 不能让一个坑把你绊倒无数次。
回溯法:
1、经常用到的 next_permutation() : 生成全排列的,是按升序生成的, 要注意与pre_permutation() 的区别,降序和升序,一般情况下用前面那个就行了。但是!!千万注意,在枚举所有情况进行深搜的时候,数组A的第一次,也就是在第一次用next_permutaion() 之前,要进行一次深搜,因为那个函数只是用来生成下一个排列, 所以不能漏了深搜第一次情况。
2、还有一个很重要的是,理解题目意思,是要枚举全排列,还是组合就行,如果题目的意思要用的是组合,而你用了全排列,那就很有可能TLE....这些都是曾经栽过的跟头,下次绝对注意!!
3、递归的入口和出口, 进入的时候的形参和出来的答案是否遍历所有该遍历的,或者说完成了一次深搜(也就是完成了一次所有该选的数据, 比如八皇后的一次枚举就是选齐八个皇后,本题则是连接了所有的点),当然在所有遍历完后是否得到了正确答案
4、对解答树的理解很重要,我也在努力,试着在每次做题前刻画出,至少要想清楚解答树是怎样的,这样才好一步一步往下深搜,比如选币值那题,对于新的一张不同的面值,是否该选取这张,这就是解答树往下生成的原因,因为不同的选择导致了最后不同的选择结果。。。这一点在构造递归函数的时候很重要!!!!
后续补充吧。。。边刷题边记坑。。。每次记录,每次翻阅,都是在提醒自己!。。加油。。。
- 递归回溯 暴力枚举 (总结)
- uva12113 暴力枚举+回溯递归
- poj_1166_枚举(或者递归/回溯)
- 递归枚举排列@递归回溯
- 填数游戏(暴力枚举+回溯剪枝实现)
- 暴力枚举法总结
- 暴力枚举法总结
- 暴力枚举法总结
- 棋盘分割 错误账目(递归问题 枚举 回溯)
- 递归回溯总结
- 递归回溯总结
- 递归回溯总结
- UVA 11210 暴力枚举 + 递归(hdu 4431)
- 简单谈谈实现递归暴力枚举
- poj1753 Flip Game 枚举 暴力 递归
- leetcode_Permutations II _hard_暴力枚举法--回溯法
- CodeForces 550B Preparing Olympiad(DFS回溯+暴力枚举)
- HLJUOJ1122(暴力枚举)
- 使Spring.NET 1.3.2支持NHibernate 3.2 ByCode方式的映射
- 常见的vc++编译错误
- ffmpeg文档1:制作屏幕录像
- udf udaf udtf
- Oracle 远程连接访问出错ORA-01031:Insufficient privileges!
- 递归回溯 暴力枚举 (总结)
- android开发文档之resource-drawable用法
- ADO 访问SQL数据库
- IIS7集成模式初始化Spring.NET容器(Request is not available in this context exception in Application_Start问题)
- OpenStack安装部署管理中常见问题解决方法(OpenStack-Lite-FAQ)
- #pragma once相关
- ffmpeg文档2:输出到屏幕
- Java/编程规范
- 解决listview的item为自定义viewgroup时,viewgroup子view press时,整个viewgroup都被按下的问题