#3871. 装饰围栏
装饰围栏
题目描述
有 块长方形的木板,长度分别为 1,2,…,,宽度都是 1。
现在要用这 块木板组成一个宽度为 的围栏,满足在围栏中,每块木板两侧的木板要么都比它高,要么都比它低。
也就是说,围栏中的木板是高低交错的。
我们称“两侧比它低的木板”处于高位,“两侧比它高的木板”处于低位。
显然,有很多种构建围栏的方案。
每个方案可以写作一个长度为 的序列,序列中的各元素是木板的长度。
把这些序列按照字典序排序,如下图所示,就是 =4 时,所有满足条件的围栏按照木板长度的字典序排序后的结果。
现在给定整数 ,求排名为 的围栏中,各木板的长度从左到右依次是多少。
输入格式
第一行包含整数,表示一共有 组数据。
接下来 行,每行包含一组数据,包括两个整数 和 。
输出格式
每组数据输出一行结果,结果表示排名为 的围栏中,各木板的长度从左到右排成的序列。
同行数据用空格隔开。
样例
2
2 1
3 3
1 2
2 3 1
数据范围
来源
- POJ1037
- 算法竞赛进阶指南