Longest Ordered Subsequence
Time Limit: 2000MS   Memory Limit: 65536K
Total Submissions: 34454   Accepted: 15135

Description

A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1a2, ..., aN)
be any sequence (ai1ai2, ..., aiK), where 1 <= i1 < i2 < ... < iK <= N. For example, sequence
(1, 7, 3, 5, 9, 4, 8) has ordered subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest ordered subsequences are of length 4, e. g., (1, 3, 5, 8).



Your program, when given the numeric sequence, must find the length of its longest ordered subsequence.

Input

The first line of input file contains the length of sequence N. The second line contains the elements of sequence - N integers in the range from 0 to 10000 each, separated by spaces. 1 <= N <= 1000

Output

Output file must contain a single integer - the length of the longest ordered subsequence of the given sequence.

Sample Input

7
1 7 3 5 9 4 8

Sample Output

4
最长上升子序列。

。orz 傻逼竟然直接把dp[n]输出了 后来wa了一时还没反应过来。。
dp[i]代表以i为结尾的最长上升子序列的长度,but dp[n]不一定最长。。事实上整个dp数组就是无序的了。

。

能够sort后输出
O(n*n)渣比写法
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cctype>
#include <vector>
#include <cstdio>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#define ll long long
#define maxn 1010
#define pp pair<int,int>
#define INF 0x3f3f3f3f
#define max(x,y) ( ((x) > (y)) ? (x) : (y) )
#define min(x,y) ( ((x) > (y)) ? (y) : (x) )
using namespace std;
int n,dp[maxn],a[maxn];
void solve()
{
for(int i=2;i<=n;i++)
for(int j=1;j<i;j++)
if(a[i]>a[j]&&dp[i]<=dp[j])
dp[i]=dp[j]+1;
sort(dp+1,dp+n+1);
printf("%d\n",dp[n]);
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=1;i<=n;i++)
{
dp[i]=1;
scanf("%d",&a[i]);
}
solve();
}
return 0;
}

最新文章

  1. [Bundling and Minification ] 三、缩小
  2. some notes about spring aop
  3. 为Apple Push开发的PHP PEAR 包:Services_Apple_PushNotification
  4. row_number() OVER(PARTITION BY)函数介绍
  5. 过滤器Filter(拦截jsp页面的跳转)案例:
  6. velocity freemarker比较
  7. python中列表,元组,字符串如何互相转换
  8. C语言连接MySql数据库
  9. Android组件间的数据传输
  10. ASP.NET-FineUI开发实践-3
  11. Python中初始化的问题以及注释问题
  12. mac版MyEclipse的安装及创建web项目
  13. CF384 div2 E. Vladik and cards
  14. [Android] ubuntu 下不识别 Android 设备
  15. [No0000FC]C# 预处理器指令
  16. taro 微信小程序原生作用域获取
  17. 求通俗讲解下tensorflow的embedding_lookup接口的意思
  18. 记Git报错-Everything up-to-date
  19. 【转】php里面也可以使用协程
  20. html5多媒体Video/Audio

热门文章

  1. 如何获取本地html文件的标题
  2. [计算机基础]URI与URL
  3. COCOS2D中对精灵的操作、对图片的各种操作
  4. html5实现拖拽文件上传
  5. touch修改文件的修改时间和访问时间,ls --full-time显示文件详细,stat命令
  6. Loser tree in Python | Christan Christens
  7. 利用Node.js实现模拟Session验证的登陆
  8. 总结文件操作函数-文件夹(三)-C语言
  9. windows 7多点触摸开发
  10. Linux从用户层到内核层系列 - GNU系列之glibc介绍