算法心得

2014.1.15  深搜和广搜的区别

  搜集自网络:

  深搜和广搜的不同之处是在于搜索顺序的不同。
  深搜的实现类似于,每次选择栈顶元素去扩展,广搜则是利用了队列,先被扩展的的节点优先拿去扩展。
  搜索树的形态:深搜层数很多,广搜则是很宽。
  深搜适合找出所有方案,广搜则用来找出最佳方案
  如果一道题你想不到怎么做,就可以考虑搜索。

经典入门级dfs深搜题http://acm.hdu.edu.cn/showproblem.php?pid=1241

    解题报告hdu 1241:Oil Deposits

经典入门级bfs广搜题http://acm.hdu.edu.cn/showproblem.php?pid=2612

  解题报告hdu 2612:Find a way

2014.1.21  贪心和动态规划的区别

该链接中描述的很全面:贪心算法和动态规划

2014.1.29  注意排序效率

做一些涉及到排序的题的时候注意排序的效率,效率低的可能会超时,建议直接用库函数。

例:hdu 1421:搬寝室(动态规划 DP)

2014.3.13  关于时间复杂度

  时间复杂度是用来估计程序运行时间的,一般是进行一次运算,或者一次循环赋值,就算做是一个复杂度,就是O(1),但是就算是相同的时间复杂度例如O(1),运行时间也可能有差异。

  一般计算机每秒可以处理10^8~10^9的复杂度,接近10^8,其实由于循环时很多时候我们并不是一次运算,所以一般程序要控制在10^7~10^8的复杂度能保证不超时,但递归调用耗时会比较大,这一点注意。

  以上改编自百度知道的回答。

  可参考以下样例的程序,有6重循环,每次10次,一共运算10^6次,时间复杂度为O(1),这个程序虽然看起来有6重循环很大,但是不会超时。

  蓝桥杯 第三届C/C++预赛真题(2) 古堡算式

2014.3.29  小技巧:如何产生精确的圆周率PI?

  const double PI = acos(-1.0);

  利用反余弦函数或者反正弦函数可以精确的求出圆周率的值。

  例题hdu 1140:War on Weather(计算几何,水题)

2014.4.9  计算几何:弧度和弧长的区别

  弧长 / 半径 = 弧度(即角度)

  弧长是长度,单位是cm,m等长度单位。

  弧度是角的度量单位,是单位,缩写为rad。1rad = 180°/π,π rad = 180°。

 

Freecode : www.cnblogs.com/yym2013

posted @ 2014-01-15 11:31  Freecode#  阅读(233)  评论(0编辑  收藏  举报