4.15~~A decorative fence

题目来源:http://poj.org/problem?id=1037

读半天才把题读懂

题意是Richard要给房子做栅栏,一个栅栏由N个木板(长度单位依次是1、2、3...N)组成,此栅栏的木板顺序为(a1、a2....aN)且满足下列条件:

1、  (ai  −  ai−1)*(ai  −  ai+1) > 0   , (any i; 1 < i < N),也就是说任一一个木板比他相邻的两个木板都高或者都低。也可以理解为以木板高度波浪形排列

显然,N个木板可以组成若干个这样的栅栏,现在给栅栏也排个序,比如存在栅栏A(a1,a2,a3....aN)和栅栏B(b1,b2,b3...bN)  (括号里面是木板的序列)

 若(any j < i) aj = bj and (ai < bi)则A排在B前面

也就是说,两个栅栏中,第一条木板较短的栅栏排在前面,若第一条木板相同,则第二条木板较短的栅栏排前面,以此,栅栏也具有了序列

输入:

第一行输入K,表示有K条输入数据集

接下来的K行,每一行是一条输入数据集,包含两个整数N(1<=N<=20)和C,N代表木板的数目(长度依次为1,2,3...N),C代表第C个栅栏木板依次为C(C1,C2,C3...CN)

输出:

输出K行,每一行是C1 C2 C3...CN的值,即第C个栅栏的木板长度值的排列

Sample Input

2
2 1
3 3

Sample Output

1 2
2 3 1

 动态规划~~

原文地址:https://www.cnblogs.com/ligun123/p/3014979.html