网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
[CEOI2002][POJ1037]A decorative fence
成绩 | 开启时间 | 2014年09月19日 星期五 10:08 | |
折扣 | 0.8 | 折扣时间 | 2014年09月26日 星期五 10:08 |
允许迟交 | 是 | 关闭时间 | 2014年09月26日 星期五 10:08 |
输入文件 | decorative.in | 输出文件 | decorative.out |
题目描述:
N块长度分别为1到N的木板,现在要将这N条木板排成漂亮的形状,所谓漂亮的形状,是指对于不在最边上的木板,两边相邻的木板要么都比它高,要么都比它低。N条木板有若干种漂亮的排列方法,现将这些排列按字典排序,即第一块木板较短的排前面,若第一条木板相同,则第二条木板较短的排前面,以此类推;最后,从1开始对这些排列方法编号。(如用3块木板可以排成132,213,312三个不同的序列,编号分别对应1à132; 2à213;3à312),现输入木板块数N和编号C,要求按顺序输出这N条木板的长度。
输入:
输入文件的第一行包括一个整数K (1 <= K <= 100)表示输入数据的组数。
接下来是K行,每行表示一组输入数据。每行包括两个用空格分开的整数N, C (1 <= N <= 20),N表示栅栏中木板的数目,C是这个栅栏在目录中的号码。
你可以这样设想,有20块木板的所有漂亮栅栏的编号可以用一个64位的无符号整数变量表示(long long in C/C++, int64 in FreePascal)。你还可以设想输入数据是正确的,特别是C最少为1而且不会超过有N块木板的漂亮栅栏编号。
输出:
每组数据只有一行输出,表示第有N木板的第C个栅栏的样子。这行序列的每个数用空格间隔。
样例输入:
2
2 1
3 3
样例输出:
1 2
2 3 1
提示:
来源:
CEOI2002