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

相關文章
相關標籤/搜索