dynamic programming
geometry
random
