POJ2533解题报告

水题一道,分析方法见前一篇博客。代码如下:
#include 

using namespace std;
int a[1001], dp[1001];
int main() {
	int n;
	while (cin >> n) {
		for (int i = 1; i <= n; ++i)
			cin >> a[i];
		int max = 0;
		for (int i = 1; i <= n; ++i) {
			dp[i] = 1;
			for (int j = 1; j < i; ++j) {
				if (a[j] < a[i] && dp[i] <= dp[j])
					dp[i] = dp[j] + 1;
			}
			if (dp[i] > max) max = dp[i];
		}
		cout << max << endl;
	}
	return 0;
}

 

posted on 2012-02-03 15:44  sing1ee  阅读(104)  评论(0)    收藏  举报