首页 > 其他分享 >线性DP-最长上升子序列

线性DP-最长上升子序列

时间:2023-08-21 20:59:30浏览次数:27  
标签:int 序列 DP 线性 上升 最长 dp

概念

最长上升子序列是指一个序列中最长的单调递增的子序列,字符子序列指的是字符串中不一定连续但先后顺序一致的n个字符,即可以去掉字符串中的部分字符,但不可改变其前后顺序。
求最长上升子序列的长度可以用线性DP

思路

  • 1.读入数据,dp[i] 代表以第 i 个数为结尾的最长上升子序列的长度
  • 2.大循环开始,从1到n,计算 dp[i],初始化为1(特别重要)
  • 3.小循环,从1到 i-1,如果 a[j] 小于 a[i] 的话,说明这个数可以和 dp[i] 组成上升子序列,状态转移方程是 dp[i]=max(f[i],f[j]+1)

代码

#include <bits/stdc++.h>
using namespace std;
int n,a[2005],dp[100005];
int main(){
	cin >>n;
	for(int i = 1;i <= n;i++)cin >> a[i];
	for(int i = 1;i <= n;i++){
		dp[i]=1;//初始化一定一定要记得放在大循环里!不要在外面写了个dp[1]=1 !!
		for(int j = 1;j <= i-1;j++){
			if(a[j]<a[i]){
				dp[i]=max(dp[i],dp[j]+1);
			}
		}
	}
	int ans = -100005;
	for(int i = 1;i <= n;i++)ans = max(ans,dp[i]);
	cout << ans;
	return 0;
}

就因为那个初始化放错了地方,原本满分变成了0,谨以此记,警示后人。

标签:int,序列,DP,线性,上升,最长,dp
From: https://www.cnblogs.com/Mingci/p/17647031.html

相关文章

  • 剑指 Offer 33. 二叉搜索树的后序遍历序列(中等)
    题目:结合以下图理解该方法classSolution{//本题要点:二叉搜索树性质:根节点一定大于所有左子树,一定小于所有右子树public:booltraversal(vector<int>&postorder,intl,intr){//l和r分别为当前树的左右边界if(l>=r)returntrue;int......
  • 反序列化漏洞利用思路
    序列化和反序列化本身没有问题,但是如果反序列化的1.内容是用户可以控制的,且后台2.不正当的使用了PHP中的魔法函数,就会导致安全问题。当传给unserialize()的3.参数可控时,可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。存在漏洞的思路:一个类用于临时将日......
  • SpringBoot复习:(49)NamedParameterJdbcTemplate用法
    packagecn.edu.tju.controller;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.autoconfigure.web.ServerProperties;importorg.springframework.boot.context.properties.EnableConfigurationProperties;importorg......
  • Xmind 8 下载_激活序列号(附图文教程,亲测有效)
    分享一波Xmind教程,亲测有效,只需下载我提供的Xmind安装包以及激活程序即可搞定Xmind激活,无需激活序列号啥的~无图无真相,上Xmind激活成功截图:XMind是一款非常实用的商业思维导图软件,应用EclipseRCP软件架构,打造易用、高效的可视化思维软件,强调软件的可扩展、跨平台、稳......
  • DPDK-22.11.2 [三] 官方helloworld编译运行讲解
    先安装dpdk编译完成后,先运行ninjainstall把相关内容安装到指定目录。ls/home/dpdkinstallbinincludelib64sharebin——一些脚本(用于绑定驱动等),编译的测试程序,编译的常用工具include——需要的头文件lib64——编译的类库share——文档相关......
  • 在 Amazon Linux 2023 上托管 WordPress 博客
    以下步骤将帮助您在AmazonLinux2023实例上安装、配置和保护WordPress博客。本教程是很好的AmazonEC2入门教程,因为您可以完全控制托管您WordPress博客的Web服务器,这对传统的托管服务来说并不是一个典型的方案。您负责更新软件包并为您的服务器维护安全补丁。对于不需......
  • DP优化
    DP的效率取决于\(3\)方面:1.状态总数2.每个状态的决策数3.状态转移计算量。这三方面都可以进行优化。状态总数优化:相当于搜索的剪枝,去除无用状态;使用降维,设计DP状态时尽量使用低维的DP。决策数量优化:即状态转移方程的优化,减少决策数量,如斜率优化,四边形不等式优化。......
  • SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据
    微信公众号访问地址:SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据一、背景:    利用ThreadPoolTaskExecutor多线程异步批量插入,提高百万级数据插入效率。ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理。ThreadPoolTaskExecutor是ThreadPoolExecut......
  • 背包DP笔记
    背包问题01背包问题有\(n\)件物品和一个容量为\(V\)的背包,第\(i\)件物品的体积为\(w[i]\),价值为\(v[i]\)。请选择将哪些物品装入背包,使得价值总和最大。思路:每种物品仅有一件,可以选择放或不放。令\(f[i][j]\)表示前\(i\)件物品放入一个容量为\(j\)的背包可以获......
  • 序列变异类型
     001、SV 002、CNV  。 ......