https://www.amazon.com/Computational-Complexity-Approach-Sanjeev-Arora/dp/0521424267
http://theory.cs.princeton.edu/complexity/book.pdf
http://vdisk.weibo.com/s/auqRJ0iyNhIjJ
https://cn.udacity.com/course/intro-to-theoretical-computer-science--cs313/
https://www.quora.com/What-is-polynomial-time-reduction-2
https://en.wikipedia.org/wiki/Reduction_(complexity)
https://www.quora.com/What-is-polynomial-time-reduction-2
Introduction to the theory of complexity
http://piluc.dsi.unifi.it/piluc/files/itc.pdf
https://en.wikipedia.org/wiki/NP-completeness
https://www.quora.com/If-any-problem-in-NP-can-be-reduced-to-problems-in-P-does-that-show-p-np
https://cs.stackexchange.com/questions/3439/how-to-reduce-to-an-np-hard-problem
https://www.cs.cmu.edu/~ckingsf/bioinfo-lectures/npcomplete.pdf
https://www.quora.com/What-are-P-NP-NP-complete-and-NP-hard
https://en.wikipedia.org/wiki/P_versus_NP_problem
https://en.wikipedia.org/wiki/NP-hardness
https://www.quora.com/How-do-you-explain-NP-Complete-and-NP-hard-to-a-child
https://en.wikipedia.org/wiki/Time_complexity#Polynomial_time
https://www.quora.com/Which-is-a-better-intuition-on-P-NP-NP-Complete-or-NP-Hard
https://www.quora.com/What-is-the-difference-between-NP-hard-and-NP-complete