ACM培训第三周总结
来源:互联网 发布:修改nginx 404页面 编辑:程序博客网 时间:2024/05/16 06:47
也许是因为培训了一段时间,我开始进入了另一种境界,就是程序常常超时。很多问题,都有相应的想法与解法。但是结果确实超时,因此,开始注意到程序算法与数学的重要性。对于一般的数论题,如果没有找到术的规律程序必然超时,还有教训就是慎用排序算法。本来算法的复杂度为O(N)的,但是因为有排序算法,复杂度变为O(nlogn)因此超时成为必然了。还有就是递归与递推的区别。递归会重复计算子问题。递推则通过子问题向前递推直到问题的解。速度比递归快很多,现在,遇到需要遍历解空间的题我都习惯用回朔的方法解题。事实上大多数题目剪枝都超时,也许是因为我的剪枝还不够狠。搜索题我第一想法是广搜和深搜。但是很多情况事实是超时。因此,改变数据结构变得很重要。如采用链表避免数组移动耗费时间。采用堆排序等。更多实际情况是,采用经过数学优化处理的递归公式。如求最大公约数用辗转相除的方法,避免无用的遍历。如分解大数的素因子,不断的缩小大数的范围。把基本素因子提出来,再用数学公式求出其组合数。很多情况下可以先预处理解空间。前提是在解空间不是一个很大的数。则在循环计算时可以避免重复计算。如建立一个素数表。还有就是在地图中记录路径的技巧。采用二维数组父亲标记的方法,通过儿子(终点)寻找祖先(始点),从二避免了广搜后,回搜原路径采用深搜。
- ACM培训第三周总结
- ACM暑假培训总结
- ACM培训第一周总结
- ACM培训第四周总结
- ACM培训练习总结 1
- ACM协会培训I--总结
- ACM培训练习总结 2
- ACM培训练习总结 3
- ACM培训第二周了
- ACM培训
- ACM第三专题—动态规划总结
- 2011年暑假ACM培训总结及省赛感悟
- 2016.7总结 培训 培训+培训
- c++培训周总结1
- c++培训周总结2
- c++培训周总结3
- c++培训周总结4
- c++培训周总结5
- IT职场:怀才不遇的人是可耻的
- STL性能测试
- WCDMA缩略语 & 几个容易混淆的概念 & 关于掉话原因分析
- 怎样使用JSP发送email?(一)
- 网络socket编程指南
- ACM培训第三周总结
- 我和我女朋友之四
- 五子棋源代码(VC++6.0)
- Java开发的环境配置
- 需要看的文章
- Asp.net页面之间传递参数的几种方法
- 好久没写blog了,最近干了些啥?
- “劣质”键盘惹的祸?
- Interface-接口