ACM - 做题技巧 - ACM学习笔记 - SegmentFault



ACM - 做题技巧 - ACM学习笔记 - SegmentFault

浮点数eps

判断两个浮点数误差的时候,使用fabs(a-b) < eps,一般的eps为1e-9。如果有可能,尽量避免浮点运算,做整数的转换。

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

熟用log函数

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

#include <math.h> double log(double x); /* 计算一个数字的自然对数 */ double log10(double x); /* 计算以10为基数的对数 */

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

利用矩阵

矩阵的乘积

有向面积

通过有向面积判断点是否在图形内部

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

例如:

| 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的算法

归并思想

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


Read full article from ACM - 做题技巧 - ACM学习笔记 - SegmentFault


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts