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)
上一篇 2022年1月18日 上午6:00
下一篇 2022年1月18日 上午6:00


相关推荐

  • 模仿学习–技术综述[通俗易懂]

    模仿学习–技术综述[通俗易懂]概念:局限性:2.1数据的可获得性影子模式可以有效的解决数据的可获得性,但是其中的数据也包括了不值得提倡的司机行为;2.2模型的有效性端到端的特性:1)可解释性较差;可解释性上刚刚有所进展(可解释机器学习?-文档)2)难以在中间过程中,接收信息和指令;应用方式:1)基于规则的规划、控制模块,还是基础的功能实现方案;2)强化学习、模仿学习,作为规划、控制模块的备份方案,在极端场景下-connercase或规则无法覆盖的场景,能够有效的实现相应功能模块。论文及学习..

    2025年12月9日
    4
  • 电信光纤友华PT921G,烽火HG220光猫激活成功教程关闭自带路由改桥接拨号教程「建议收藏」

    电信光纤友华PT921G,烽火HG220光猫激活成功教程关闭自带路由改桥接拨号教程「建议收藏」电信光纤友华PT921G光猫激活成功教程关闭自带路由改桥接拨号教程电信光猫质量烂就算了,最受不了它自带的路由还做了手脚,导致VPN用不了。不让看AV就算了,打个外服游戏总可以吧?不知道为啥,网上关于光猫改桥接的教程基本没有,搜出来的也说得很不清楚,是和谐了还是什么原因不得而知。本人也是自己自己试出来的,其实修改难度并不大,只不过那个界面搞的特奇葩特不友好罢了。废话不多说,步骤如下:

    2022年6月27日
    175
  • 浅谈CMS垃圾收集器与G1收集器

    浅谈CMS垃圾收集器与G1收集器1、CMS收集器  CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现,它的运作过程如下:1)初始标记2)并发标记3)重新标记4)并发清除  初始标记、从新标记这两个步骤仍然需要“stop the world”,初始标记仅仅只是标记一下GC Roots能直接关联到的对象,熟读很快,并发标记阶段就是进行GC Roots Tracing,而重新标…

    2022年5月8日
    48
  • number_format需要注意的地方

    number_format需要注意的地方number format nbsp 函数通过千位分组来格式化数字 但当你的数据库字段为 demical 时 直接保存会被过滤 例如 4 300 05 保存到 demical 字段中时 则为 4 所以请用 str replace 函数将逗号替换掉再保存

    2026年3月26日
    2
  • word打印A4纸翻页小册子设置「建议收藏」

    word打印A4纸翻页小册子设置「建议收藏」要实现的是A4纸对折成翻页的小册子在word里选页面布局设置如下:还有页脚的页数显示要改成左页的页数在左下角,右页的页数在右下角:有页码显示时双击页脚会出来页码设置,选择双面打印2。转成pdf:点打印图标,选择导出pdf…

    2025年9月20日
    8
  • SQL int 转 char

    SQL int 转 char2019 独角兽企业重金招聘 Python 工程师标准 gt gt gt

    2026年3月26日
    2

发表回复

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

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