本文主要是介绍poj2533纯最长上升子序列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//题意:求最长上升子序列
//思路:记录每个状态的最大值,且时刻维护最大值
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>using namespace std;int num[1000+10];
int dp[1000+10];int main()
{int n;while(scanf("%d", &n) != EOF){for(int i = 0; i < n; i++){scanf("%d", &num[i]);dp[i] = 1;}int maxx = 1;for(int i = 1; i < n; i++){for(int j = 0; j < i; j++){if(num[i] > num[j]){dp[i] = max(dp[i], dp[j] + 1); //这里时刻维护当前状态为最大值maxx = max(maxx, dp[i]);}}}printf("%d\n", maxx);}return 0;
}
这篇关于poj2533纯最长上升子序列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!