poj1011sticks题解
来源:互联网 发布:linux tomcat无法访问 编辑:程序博客网 时间:2024/05/29 23:48
题目要求将一系列的sticks重新组合,形成若干相等相等长度的木棒,且尽量使木棒长度最小,如果数据量比较小的话,就纯粹是搜索了,但题目要求的 sticks可能达到64根,如果纯粹的搜索则显然是会远远超过1000ms的,因而也就把剪枝放在了很重要的位置。从第一根stick开始,寻找下一根 stick使两者的长度小于等于木棒的长度,然后再寻找下一根stick,直到和为一根木棒的长度;然后又从一根没有被使用的stick开始进行下一根木棒的组合。概括一点说,就是一个深度优先搜索。
算法很清晰,然而真正写起来却有不少要注意的地方.
1.首先是used[]的恢复,当某一步搜索走不通的时候,不能忘记将used[i]置为false.
2.其次是剪枝的采用,当第i步时,剩余最大的sticks[i]等于restLen时,继续搜索还是走不通的话,那么这一步取sticks[j],j>i也不会成功,所以此时返回false就行了。不然的话,会超时的。
- poj1011sticks题解
- poj1011Sticks
- poj1011Sticks
- 【搜索】poj1011sticks
- [经典DFS]poj1011Sticks
- poj1011Sticks 经典搜索
- poj1011Sticks(dfs+剪枝)
- poj1011Sticks(搜索+剪枝)
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 函数指针和指针函数
- 以太网交换机常用的功能及协议
- 一些对CSS3开发人员非常有用的工具
- 进一步解释:消息和任务
- 评教模块编码结束--项目感受
- poj1011sticks题解
- QT提高图片显示速度
- SSL与TLS
- 详解MySql配置文件 my.ini
- Proxy代理设计模式
- JQuery中几种特殊的符号$、!、@、^浅析
- trac 0.12 开启国际化支持,让其显示中文
- 这里好温暖
- 一个web项目的名字