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
动态规划~~