小塔的游戏有两个整数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。
最长上升子序列是一个序列中最长的严格单调递增的子序列,而子序列为从原字符中删除任意数量(可以为零、可以为全部)的字符得到的新字符串。例如,{1,3,4} 的最长上升子序列为 {1,3,4,5}; 其长度为 4。
从第一个数字开始,逐个元素比较直观找到第一个不同的数字,通过比较这个数字的大小与数字的大小决定序列的大小。例如,{1,2,4,3} 字典序大于 {1,2,3,4}; 字典序 {2,1,3,4} 大于 {1,4,3,2}。
输入包含一行两个整数n k(1≤k≤n≤2×105),含义和题目描述一致。
输出包含一行n个整数,用空格隔开,表示字典序最小的最长上升子序列为k的排列
输入
5 3
输出
1 2 5 4 3
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.