题目:http://www.nocow.cn/index.php/Translate:USACO/buylow
求一个最长的一个递减系列的长度,和序列的种类。
第一个问题可以用动态规划解决。map[i] = max( map[i+1 ..... n] ) +1; if( map[i] > map[i+1 ... n]) );
第二个问题在第一个问题基础之上,通过第一个问题,我们可以得到一个map的数组,然后通过map数组,使用递归我们可以得到所有的系列,但是好像种类数很多,一下子就超出了long int的范围,因为我们必须自己写一个大整数的处理方法。
代码如下:
运行结果如下: