[Rush]
a. k-sum generalized
------------------------
-!1. Greedy vs. DP: http://blog.csdn.net/yelbosh/article/details/7649717.
Multiple choices or not: Greedy has only 1 optimal last choice; DP picks the best among several choices (not necessarily optimal)
-2. Consistent Hashing
http://blog.csdn.net/sparkliang/article/details/5279393. A ring, virtual nodes.
Database Sharding
http://blog.csdn.net/bluishglc/article/details/6161475
3. Lock-Free Programming (lock-free queuemap etc.)
http://kukuruku.co/hub/cpp/lock-free-data-structures-introduction
4. 八大排序算法:http://www.cricode.com/3212.html
7. String Search:
KMP : like a DFA on pattern string itself
Boyer-Moore : comparing from the back, and stops appropriately
Rabin-Karp : incremental hash computation
8. Dijkstra Pick VIA vertex (shortest edge) GREEDILY, and then RELAX all other edges
http://www.cnblogs.com/qijinbiao/archive/2012/10/04/2711780.html
Bellman-Ford loop over VIA and DEST vertices to relax edges (able to handle negative edges)
Floyd-Warshall loop over VIA, START and DEST vertices to relax edges
[They are all 'relaxation' based algorithm, and focuses on VIA point]
8. 3 solutions to Longest Palindrome: DPSuffix TreeManacher
DP: bottom-up DP
Suffix Tree solution: Longest common string between S and reverse(S) -> deepest non-leaf node
!Manacher: http://blog.csdn.net/bruce_zeng/article/details/8629572: reuse calculated palin-radius due to the symmetric prop
11. ?RMQ
13. A*
14. Joseph Circle: winner is who calls 1. so f[i] = (f[i-1] + k) % n
[ Optional ]
a. *数位dp?
b. Non-deterministic Primality Testing: Miller-Rabin, Solovay-Strassen etc.