信息学竞赛中搜索问题的常见优化技巧
来源:互联网 发布:手机黄金交易软件 编辑:程序博客网 时间:2024/06/08 18:46
①在解决约束满足问题的时候,题目给出的约束条件越强,对于搜索中的剪枝就越有利。之所以深度优先搜索的效率在很大程度上优于穷举,就是因为它在搜索过程中很好的利用了题目中的约束条件进行剪枝,达到提高程序效率的目的
②不同的搜索顺序和搜索对象就直接影响到我们对于题目约束条件的运用
③选择合适的搜索顺序对于提高程序的效率是编程设计最有效的技巧之一,运用良好的搜索顺序来对搜索题目进行优化是一个性价比很高的算法
④相对于深度优先搜索的另外一类题目——给出起始和目标状态,以及状态转移的规则,要求找到一条到达目标状态的的路径或者方法。这类问题我们叫它路径寻找问题(例如走迷宫问题)。解决这类问题最有效的手段是选取合适的构造Hash表的方法
⑤
Hash表的一般构造方法有:
状态压缩——运用2进制来记录状态。
直接取余法—-选取一个素数M作为除数。
平方取中法—-计算关键值平方,再取中间r位形成一个大小为2^r的表。
折叠法———把所有字符的ASCII码加起来。
⑥判重是决定程序效率的关键
⑦Hash表是非常重要的广度优先搜索优化方式之一,它能够把搜索算法的效率从大指数级提高到小指数级、多项式级甚至常数级。
⑧如何利用好已知的信息对搜索进行剪枝将直接影响程序的效率
阅读全文
0 0
- 信息学竞赛中搜索问题的常见优化技巧
- 浅谈信息学竞赛中逆序对问题的求法
- {分享}《Matrix67:信息学竞赛中可能有用的概率学知识》——Monty Hall问题
- 信息学竞赛的常数优化、常见问题、代码风格等
- 信息学奥林匹克竞赛-计数问题
- 信息学竞赛中可能有用的概率学知识
- 信息学竞赛中可能有用的概率学知识
- 【转】对信息学竞赛中调试方法的建议
- 【转】对信息学竞赛中调试方法的建议
- 对信息学竞赛中调试方法的建议
- 对信息学竞赛中调试方法的建议
- 对信息学竞赛中调试方法的建议
- 对信息学竞赛中调试方法的建议
- 日常工作中常见的mysql优化技巧
- 信息学竞赛
- 常见的搜索优化策略
- 面试中常见的SQL优化问题
- 信息学竞赛的相关资料网址收藏
- word文档上粘贴源代码
- Python--合并两个有序列表
- K9F2G08 nandflash 底层读写、控制驱动程序,可随机读写
- Struts2 属性驱动
- 创建本地 python pip 库
- 信息学竞赛中搜索问题的常见优化技巧
- k最邻近算法——加权kNN
- HFileBlock 源码解析 (hbase 1.2.6)
- left join 、right join、inner join 区别
- 开始一个React项目(一)一个最简单的webpack配置
- 数据库_mysql(二)
- CF854B Maxim Buys an Apartment【思路】
- 三个实例演示 Java Thread Dump 日志分析
- CodeForces