poj2533-Longest Ordered Subsequence(最长上升子序列)

来源:互联网 发布:淘宝网皮衣女装 编辑:程序博客网 时间:2024/05/29 16:14
#include <iostream>#include <cstring>#include <algorithm>using namespace std;struct poj2533 {/*[问题描述]:求最长上升子序列的长度*//*[解题思路]:f[i]表示以i结尾的最长上升子序列的长度,则f[i]=max{f[j]|v[j]<v[i],j<i}+1*/int n;int v[1005];int f[1005];void work() {while (cin >> n) {for (int i = 1; i <= n; i++)cin >> v[i];f[0] = 0;for (int i = 1; i <= n; i++) {f[i] = 1;for (int j = i - 1; j >= 1; j--)if (v[j] < v[i])f[i] = max(f[i], f[j] + 1);}int ans = 0;for (int i = 1; i <= n; i++)ans = max(ans, f[i]);cout << ans << endl;}}};int main(){poj2533 solution;solution.work();return 0;}

0 0