POJ 2533 Longest Ordered Subsequence(DP动态规划)

//DP动态规划,求最长上升子序列 #include<cstdio> int arr[1001],d[1001],len,max = 1;//最大值应初始化为1,因为最小值是1.当只有1个数据是输出1. int main() { for(int i = 1;i <= 1000;++i) d[i] = 1;//将DP数组初始化为1 scanf("%d",&len); for(int i = 1;i <= len;++i) scanf("%d",&arr[i]); for(int i = 1;i < len;++i) for(int j = i + 1;j <= len;++j) { if(arr[j] > arr[i] && d[j] <= d[i] + 1)//动态规划过程 d[j] = d[i] + 1; if(d[j] > max) max = d[j]; } printf("%d/n",max); return 0; }  

你可能感兴趣的:(POJ 2533 Longest Ordered Subsequence(DP动态规划))