POJ 2533 Longest Ordered Subsequence 动态规划

题意

本题求从1 到 n的最长上升子序列的长度

分析

最优化问题
考虑dp
我们求1-n最长上升子序列长度
假设记录在dp[n]中
假设我们已经知道了1—n-1的以第n-1为最后一个元素的最长上升序列的长度
那么我们拿到第n个元素不就可以判断如果这个n比n-1位置上的元素大
那么就让dp[n] = dp[n-1]+1不就可以了吗
那么dp[n-1]又怎么得到
我们需要得到dp[n-2]
那么dp[n-2]咋知道 我们需要dp[n-3]。。。
所以我们不如从前面开始推
设置dp数组 dp[i]表示以第I个元素为结尾的从1到n最长上升子序列的长度
也就是我们要从第一个元素x开始向后扫
如果后面的元素比x大 那么就让dp[I] = dp[1]+1;
那么这里我们看到需要把dp[i]全部都初始化为1
只有这样才能得到正确累计的数量
可是我们发现 如果每个元素都做此相同步骤
我们需要考虑就是如果这个dp[i]本来就比dp[枚举元素]+1 大 我们就不能直接赋值了
因为这个元素可能已经被前面的某些元素已经搞得比较大了
所以我们得到最终的递推关系
dp[j]=max(dp[j],dp[i]+1);

CODE

#include<bits/stdc++.h>
using namespace std;
int a[1010],dp[1010];int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);dp[i]=1;}for(int i=1;i<n;i++){for(int j=i+1;j<=n;j++){if(a[j]>a[i])dp[j] = max(dp[i]+1,dp[j]);}}int ans=-1;for(int i=1;i<=n;i++){ans = max(dp[i],ans);}printf("%d\n",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那些ubuntu创建用户踩过的坑

在ubuntu中应该用adduser命令创建用户&#xff0c;而不是使用useradd. 各种Linux发行版是有差别的&#xff0c;我也是刚用过才知道的。转载于:https://www.cnblogs.com/April315/p/10496745.html

[剑指offer][JAVA]面试题第[30]题[包含min函数的栈][双栈辅助栈][单栈]

【问题描述】[中等] 定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中&#xff0c;调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-…

C语言-同码小数和

设和式s(d&#xff0c;n)0.d0.dd0.ddd…0.dd…d为n项同码d小数之和&#xff0c;其中第k项小数点后有连续k个数字d&#xff08;d1&#xff0c;2&#xff0c;…&#xff0c;9)。 例如&#xff1a;s&#xff08;7&#xff0c;4&#xff09;0.70.770.7770.7777 还有其他的解法 可…

12.多媒体和超链接标签及其应用实例

多媒体和超链接标签及其应用实例

POJ-3624 Charm Bracelet dp

题意 N个物品每个就一个给出每个物品的价值和花费&#xff0c;表示最终选择一些物品使得花费不超过M&#xff0c;使得价值最大化 分析 最优化问题 考虑dp n个物品选择一些得到最后的最优化问题 我们不妨考虑&#xff0c;假设我们得到了n-1个物品在容量为m情况下最优化值存…

[Leedcode][JAVA][面试题 16.18][模式匹配][字符串][枚举]

【问题描述】[中等] 你有两个字符串&#xff0c;即pattern和value。 pattern字符串由字母"a"和"b"组成&#xff0c;用于描述字符串中的模式。例如&#xff0c;字符串"catcatgocatgo"匹配模式"aabab"&#xff08;其中"cat"是…

C语言实现小数四舍五入

做日记笔记。 转载自https://blog.csdn.net/weixin_38505045/article/details/79994536 排版有更改 C语言中实现四舍五入: (int)(a0.5)即可。 很巧妙的用了取整规则。 也不用导入math.h 同样注意负数的情况。 把 换成 - 即可。 float f ……; int i (int)(f 0.5); i就是f…

CSS效果

效果属性 box-shadow/text-shadow/border-radius/background/clip-path box-shadow 图形阴影 <style type"text/css">.container{width: 50px;height:50px;background: red;box-shadow: 5px 5px 10px rgba(0,0,0,0.5)} </style> <body><div cla…

POJ-1384 Piggy-Bank 多重背包变形

题意 给我们一个容器的容量m n个物品 每个物品有不同的花费和价值 问我们再每个物品无限个的情况下 最后正好装满最后得到的最小价值是多少 如果装不满 就输出impossible 分析 目标状态&#xff1a;最小价值策略 限制条件&#xff1a;正好装满m的容量 多重背包模型 每个物…

13.表格标签及其应用实例

表格标签及其应用实例

1.6解不等式 1.6.1 平方根不等式

//《至美——C程序设计》 在这个前辈的代码上改了一点 S1赋值&#xff0c; s1 1; //赋值 如果提前未赋值会有警告&#xff0c;所以我就想赋值。然后我是在for循环里写的 while (1){m;s 0;s1 1;for (i m; i < 2 * m; i)s sqrt(i); /*对每一个m计算和s*/这会运行结果…

[剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]

【问题描述】[中等] 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序列 {4,5,3,2,1} 是该压栈序列对应的一个弹…

《七哥说道》第二章:初出茅庐之拜师学艺

【 转载请注明】&#xff1a; 原文出处&#xff1a;https://www.cnblogs.com/jstarseven/p/10499659.html 作者&#xff1a;jstarseven 码字挺辛苦的..... 怀着对第一份工作的遐想&#xff0c;15年6月1号&#xff08;儿童节啊&#xff09;&#xff0c;我开始了我的入职之旅。北…

hihocoder A Game 区间dp

题意 一个数串 A和B每人从这个数串的第一个或者最后一个元素选择一个数加到自己的得分里&#xff0c;A先选&#xff0c;求先手最大得分 样例&#xff1a; 4 -1 0 100 2 输出 99 分析 对于任意一个区间段 我们考虑的问题是相似的 不论任何区间段都是考虑取前面的还是取…

[Leedcode][JAVA][第67题][二进制求和][位运算][字符串]

【问题描述】[简单] 给你两个二进制字符串&#xff0c;返回它们的和&#xff08;用二进制表示&#xff09;。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a "11", b "1" 输出: "100" 示例 2:输入: a "1010", b "1…

解不等式之代数和不等式

代数和概念&#xff1a;数学用语。将数(实数)的加减法算式视为省略加号的几个有理数的和&#xff0c;称这个算式的结果为这几个有理数的代数和。 试解下列关于正整数n的代数和不等式&#xff1a; d < 11/2-1/31/41/5-1/61/n 其中d为从键盘输入的正数&#xff0c;式中代数和…

15.jsp简介

JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages&#xff0c;是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet&#xff0c;主要用于实现Java web应用程序的用户界面部分。网页开发者…

wamp

进入localhost找不到项目文件 转载于:https://www.cnblogs.com/nzc520/p/10501528.html