小塔的游戏有两个整数n,k,他希望构造一个 1 到 n 的排列p,要求p 的最长上升子序列的长度为 k,并且p是全部满足要求的排列中字典序最小的。
长度为n的排列是由 1到n这个 n个整数,按任意顺序组合成数组。每个整数均可以出现一次。例如,{2,3,1,5,4} 是一个排列,{1,2,2} 不是一个排列(数组中的2出现了两次),{1,3,4} 也不是一个排列,(长度 3但数字中的 4。
首先,要字典序最小,我们自然想到最终构造的LIS为:1 2 3 , ... , k
接下来,我们可以将k + 1 , ... , n 逆序往插入到k - 1 和 k之间,这样能恰好使得LIS不增大且数字尽量靠后
例如:5 3