<<算法竞赛入门经典>> chapter 5.3.1