Peaks ( Gym 100365H ) 这题nk做法还挺正常的..后面那个循环就很恶心了 考虑 dp[i][j] 表示长度为i的排列,恰好有k个峰的方案数量. 然后转移就是把 i 插入 i-1 的排列. i显然是i-1的排列里面最大的数,然后插入就只有两种情况: 插入在峰的左右,由于峰不可能相邻,所以可以插入在 2j 个位置 插入在爬山的时候,那么峰的数量+1 $ dp[i][j] = 2j\times dp[i-1][j] + ( i - 2(j - 1) )dp[i-1][j-1] $…