dp 最大递增子序列
来源:互联网 发布:淘宝美工容易吗 编辑:程序博客网 时间:2024/06/05 17:21
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, the 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 of this sequence 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 contains the length of sequence N (1 <= N <= 1000). The second line contains the elements of sequence - N integers in the range from 0 to 10000 each, separated by spaces.
Output
Output must contain a single integer - the length of the longest ordered subsequence of the given sequence.
This problem contains multiple test cases!
The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.
The output format consists of N output blocks. There is a blank line between output blocks.
Sample Input
1
7
1 7 3 5 9 4 8
Sample Output
4
#include<stdio.h>int main(){ int a[10010],b[10010];//a数组记录数据, b数组记录从第一个数组每个数字的最大单调递增子序列。 int n, i, m, max, j, flag = 0; scanf("%d",&n); while(n--) { scanf("%d",&m); for(i = 0; i < m; i++) scanf("%d",&a[i]); max = 1; b[0] = 1; for(i = 1; i < m; i++) { int k = 0; for(j = 0; j < i; j++) if(a[j] < a[i] && k < b[j])//找到满足a[j] < a[i] 的最大b[j]; { k = b[j]; } b[i] = k + 1; if(max < b[i]) max = b[i]; } if(flag) printf("\n"); else flag = 1; printf("%d\n",max); } return 0;}
可以当做模板使用哟!!!
- dp 最大递增子序列
- 最大递增子序列
- 最大递增子序列
- 最大递增子序列
- hdu1069Monkey and banana -最大递增子序列dp
- hdu 3564 线段树+dp(最大递增子序列)
- DP 动态规划 Problem E 1005 最大递增子序列
- HDU 1087 (DP---最大递增子序列和)
- HDU1257 最少拦截系统 DP(最大递增子序列)
- 最大递增(减)子序列
- 最大连续递增子序列
- hdu1025 最大递增子序列
- 最大递增子序列LIS
- 最大递增子序列问题
- 最大连续递增子序列
- 最大单调递增子序列
- 最长递增子序列 - dp
- 最长递增子序列dp
- socket 10106 解决方法
- .bat文件中call命令的用法
- java 冒泡排序及其改进
- iOS开源项目 FreeBall
- 利用Excel VBA实现Outlook邮件发送实现
- dp 最大递增子序列
- .bat文件中if的用法
- 【机房收费系统】 之 上下机
- Jackson
- CoreLocation地理编码
- linux之cp/scp命令+scp命令详解
- ubuntu14.04重装sogou
- 【java基础增强】增强for循环取Map值
- SSO (单点登录)实现方式