POJ 2533-Longest Ordered Subsequence(DP)

POJ 2533-Longest Ordered Subsequence(DP)

大家好,又见面了,我是全栈君。

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 (
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
最长上升子序列。

。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;}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116655.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最小二乘法的详细推导过程-比之前见过的推导都简单!!!

    最小二乘法的详细推导过程-比之前见过的推导都简单!!!最小二乘法发展于天文学和大地测量学领域,科学家和数学家尝试为大航海探索时期的海洋航行挑战提供解决方案。准确描述天体的行为是船舰在大海洋上航行的关键,水手不能再依靠陆上目标导航作航行。来源:我是码农,转载请保留出处和链接!本文链接:http://www.54manong.com/?id=1203(function(){vars=”_”+Ma…

    2022年5月16日
    43
  • jquery智能弹出层,自己主动推断位置

    jquery智能弹出层,自己主动推断位置

    2022年2月7日
    102
  • win10封装系统(sc封装)

    大家都知道Win10系统是微软最新发布的具有划时代意义的新一代操作系统,担负着振兴微软的大任,凭借卓越的性能和流畅的用户体验赢得了广大用户的认可和信任,市场占有率那是芝麻开花节节高啊,不过作为装机维修的技术员同行们肯定想知道如何封装Win10操作系统,从而为我们的日常装机工作带来便利,不过据爱学府软件园了解到目前网络上几乎找不到比较详细好用且具备学习价值的Win10系统封装教程,针对这一问…

    2022年4月13日
    85
  • 矩阵奇异值分解(详解)「建议收藏」

    矩阵奇异值分解(详解)「建议收藏」 转载于http://blog.csdn.net/zhongkejingwang/article/details/43053513  在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间看了国外的一篇文章,叫ASingularlyValuableDecompositionTheSVDofaMatrix,觉得…

    2025年8月1日
    6
  • ubuntu 10.04.4版本第一次安装注意点和说明

    ubuntu 10.04.4版本第一次安装注意点和说明引语:linux现在主要有两个系,一个是Redhat系和debian系,redhat系有redhat,centos等版本操作系统,debian系有ubuntu等版本操作系统;可能大家习惯用了redha

    2022年7月3日
    22
  • navicat导出longtext类型数据乱码的解决方案

    navicat导出longtext类型数据乱码的解决方案一、先使用sql查询出需要导出的内容,将longtext类型使用cast转化成char类型SELECT company_id, wechat_mp_appid, CAST(survey_risk_tips_orgASchar)ASsurvey_risk_tips_org, CAST(survey_disclaimerASchar)ASsurvey_disclaimer, CAS…

    2022年5月14日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号