题意:求最长递增子序列的长度,裸题。
思路:DP即可。
AC代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; #define maxx 1005 int main() { int n,v[maxx]; int dp[maxx]; while(scanf("%d",&n) != EOF) { for(int i = 1;i <= n;i ++) dp[i] = 1; for(int i = 1;i <= n;i ++) scanf("%d",&v[i]); for(int i = 1;i <= n;i ++) for(int j = 1;j <= i;j ++) { if(v[i] > v[j]) { dp[i] = max(dp[i],dp[j] + 1); } } int maxans = 0; for(int i = 1;i <= n;i ++) { if(dp[i] > maxans) maxans=dp[i]; } printf("%d\n",maxans); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/mowenwen_/article/details/46966391