标签:
| Time Limit: 2000MS | Memory Limit: 65536K | |
| Total Submissions: 35930 | Accepted: 15779 |
Description
Input
Output
Sample Input
7 1 7 3 5 9 4 8
Sample Output
4
Source
题意:最长上升子序列。
解析:dp递推。
AC代码:
#include <cstdio>
#include <algorithm>
using namespace std;
int n;
int a[1002];
int dp[1002];
void solve(){
int res = 0;
for(int i=0; i<n; i++){
dp[i] = 1;
for(int j=0; j<i; j++) if(a[j] < a[i]){
dp[i] = max(dp[i], dp[j] + 1); //状态转移方程
}
res = max(res, dp[i]);
}
printf("%d\n", res);
}
int main(){
#ifdef sxk
freopen("in.txt", "r", stdin);
#endif //sxk
while(~scanf("%d", &n)){
for(int i=0; i<n; i++) scanf("%d", &a[i]);
solve();
}
}
POJ 2533 Longest Ordered Subsequence (LIS)
标签:
原文地址:http://blog.csdn.net/u013446688/article/details/44022549