Longest Ordered Subsequence 最长上升子序列
2013-10-29 22:42
253 查看
Longest Ordered Subsequence
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
Submit
Status
Description
A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., 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
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
Submit
Status
Description
A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., 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
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int a[1010]; int dp[1010]; int main() { int n; // freopen("in.txt","r",stdin); while(~scanf("%d",&n)) { for(int i=0;i<n;i++) scanf("%d",&a[i]); dp[0]=1; int ans=1; for(int i=1;i<n;i++) { dp[i]=1; for(int j=0;j<i;j++) { if(a[i]>a[j]) dp[i]=max(dp[i],dp[j]+1); else if(a[i]==a[j]) dp[i]=max(dp[i],dp[j]); } ans=max(ans,dp[i]); } printf("%d\n",ans); } }
相关文章推荐
- 注重用户互动 Path 2.5评测
- path2.0 UI path 2.0的华丽转身
- IOS 7 自定义的UIAlertView不能在iOS7上正常显示
- 2.5 《硬啃设计模式》第7章 车手选车 - 生成器(Builder Pattern)
- Arduino 模拟信号的读入并转化为0-5V电压
- 快速排序(quick sort)
- Arduino入门笔记(6):温度传感器及感温杯实验
- UISearchBar背景透明,去掉背景,自定义背景(转)
- ios set UINavigationBar background color
- [置顶] EASYUI+MVC4+VS2010通用权限管理系统开发
- soapUI传xml格式的字符串作为服务的参数
- Hashtable判断两个value相等的标准
- 深入浅出SPARSE之【Chapter 3】Pursuit Algorithms – Practice
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- [feather]StarlingUi框架——Screen及界面导航
- no such partition grub rescue的解决方案
- Technique与Technology的区别
- 从客户端(......)中检测到有潜在危险的 Request.Form 值
- 2.5 《硬啃设计模式》第7章 车手选车 - 生成器(Builder Pattern)
- UVA 11039 - Building designing(DP)