动态规划 01题
来源:互联网 发布:c语言的应用场景 编辑:程序博客网 时间:2024/05/17 01:53
01:最长上升子序列
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 2000ms
- 内存限制:
- 65536kB
- 描述
- 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8).
你的任务,就是对于给定的序列,求出最长上升子序列的长度。 - 输入
- 输入的第一行是序列的长度N (1 <= N <= 1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到10000。
- 输出
- 最长上升子序列的长度。
- 样例输入
71 7 3 5 9 4 8
- 样例输出
4
这道题是老师上课讲的例题,按照那个思路做的。
#include<iostream>#include<iomanip>using namespace std;int len[10000];int main(){ int n,a[1500]; while (cin>>n){ for (int i=1;i<=n;i++) cin>>a[i]; len[1]=1; for (int i=2;i<=n;i++){ int tmp=0; for (int j=1;j<i;j++){ if (a[i]>a[j]) { if (tmp<len[j]) tmp=len[j]; }} len[i]=tmp+1;}} int max=-1; for (int i=1;i<=n;i++) {if (max<len[i]) max=len[i];} cout<<max;return 0;}
0 0
- 动态规划 01题
- 动态规划 HDU 动态规划题集
- 01背包问题 -- 经典动态规划题
- 动态规划01
- 动态规划 01背包
- 01背包-动态规划
- 01背包动态规划
- 01背包 动态规划
- 01背包动态规划
- 01背包 动态规划
- 动态规划01背包
- 动态规划01背包
- 动态规划01背包
- 动态规划-01背包
- 动态规划:01背包
- 动态规划 01背包
- 动态规划题
- 动态规划笔试题
- Git安装文档
- 创建并运行第一个 XPages 应用程序
- 自考过后
- 计算机网络原理--考点
- CSDN日报20170416 ——《为什么程序员话少钱多死得早?》
- 动态规划 01题
- 阿里巴巴和n个大盗
- leetcode62. Unique Paths
- 浅谈C# 多态的魅力(虚方法,抽象,接口实现)
- h5界面布局
- 【数据库系统概念部分习题】第一章 引言
- mook网c语言入门之数组,字符串
- SRM553 Div1 500
- Kanzi基础---Button控件