/*
47.创新工场:
求一个数组的最长递减子序列
比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}
一看就是DP题目
设源数组为A,我们定义一个长度与A相同的辅助数组为B,
B[i]表示以A[i]结尾的最长递减序列的长度。
B[i]=max{B[k]+1,A[i]
题目要求输出递减的序列
倒着来 B[i]表示以A[i]结尾的最长递减序列的长度,最大的肯定就是末尾元素
如何 搜寻前面的数?B[i]+1==B[k] && A[i]>A[k]时,A[i]就是前一个元素;
还有种方法输出,就是再用一个数组,存储前一个递减序列的位置
if(a[i]
max=dp[j]+1;
id=j;
*/
#include
#include
using namespace std;
int dp[100],id[100];
void printPath(int a[],int dp[],int k)
{
int i;
for(i=k;i>=0;i--)//k表示的是递减序列的位置
{
if(a[i]>a