ACM - 作题技巧

作题技巧

浮点数eps

判断两个浮点数偏差的时候,使用fabs(a-b) < eps,通常的eps为1e-9。若是有可能,尽可能避免浮点运算,作整数的转换。算法

计算一元二次方程解的时候,能够进行如此运算,例如((sqrt(8.0*n+1)-1)/2-eps)+1函数

熟用log函数

多多利用log函数,用以减少数量级。code

c#include <math.h>

double   log(double x);   /* 计算一个数字的天然对数 */
double log10(double x);   /* 计算以10为基数的对数 */

求一个数的位数: log10(a)技巧

利用矩阵

矩阵的乘积方法

有向面积

经过有向面积判断点是否在图形内部时间

经过行列式的三个点求有向面积co

例如:浮点数

| x0 y0 1 |
2A = | x1 y1 1 | = x0y1 + x2y0 + x1y2 - x2y1 - x0y2 - x1y0
     | x2 y2 1 |

两倍的三角形面积
方法是构建齐次坐标,若是逆时针,有向面积为正,逆时针,有向面积为负。数字

关于时间复杂度

  1. n <= 8 , n!的算法能够
  2. n <= 20 , 2**n的算法能够
  3. n <= 300, 至多用n**3的算法

归并思想

左边求,右边求,左右边求。。math

相关文章
相关标签/搜索