当前位置: 首页 > news >正文

7-10 最长公共子序列

目录

题目描述

输入格式:

输出格式:

输入样例:

输出样例:

解题思路:

 详细代码:


题目描述

给出 1~n 的两个排列 P1 和 P2,求它们的最长公共子序列。

n 在 5~1000 之间。

输入格式:

第一行是一个数 n

接下来两行,每行为 n 个数,为自然数 1~n 的一个排列(1~n 的排列每行的数据都是 1~n 之间的数,但顺序可能不同,比如 1~5 的排列可以是:1 2 3 4 5,也可以是 2 5 4 3 1)。

输出格式:

一个整数,即最长公共子序列的长度。
数据范围

对于 25% 的数据 n≤10

对于 50% 的数据 n≤500

对于 75% 的数据 n≤800
对于 100% 的数据 n≤1000

输入样例:

5 
3 2 1 4 5
1 2 3 4 5

输出样例:

3

解题思路:

本题为线性动态规划

存在两种情况

1、如果当前匹配的元素相等,则长度加一

2、如果不相等,两个元素必定有一个可以去除

详细代码:

#include <iostream>
using namespace std;
const int N=1010;
int n,m;
int sz1[N],sz2[N];
int dp[N][N];
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){cin>>sz1[i];}for(int i=1;i<=n;i++){cin>>sz2[i];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){dp[i][j]=max(dp[i-1][j],dp[i][j-1]);    //不同,认定为从缺少这两种元素的前一种情况而来if(sz1[i]==sz2[j])dp[i][j]=dp[i-1][j-1]+1;	//相同长度加一}}cout<<dp[n][n];
}
http://www.lryc.cn/news/511085.html

相关文章:

  • 亚远景-ISO 21434标准下的汽车网络安全:风险评估与管理的关键实践
  • C++ 的 source_location
  • [python SQLAlchemy数据库操作入门]-14.实时数据采集 记录股市动态
  • `we_chat_union_id IS NOT NULL` 和 `we_chat_union_id != ‘‘` 这两个条件之间的区别
  • 【和春笋一起学C++】文本输入与读取
  • D类音频应用EMI管理
  • 第N8周:使用Word2vec实现文本分类
  • 100天精通Python(爬虫篇)——第113天:爬虫基础模块之urllib详细教程大全
  • 光谱相机与普通相机的区别
  • Mysql数据 新增、修改和删除操作时,这些变化如何被转换为Kafka消息?
  • 《Python 机器视觉:开启智能视觉新时代》
  • uniapp实现为微信小程序扫一扫的功能
  • 【微信小程序】4plus|搜索框-历史搜索 | 我的咖啡店-综合实训
  • 使用FFmpeg进行拉流和推流操作
  • Unity微信小游戏接入开放数据域
  • Spring Boot的开发工具(DevTools)模块中的热更新特性导致的问题
  • Elasticsearch安装和数据迁移
  • Numpy指南:解锁Python多维数组与矩阵运算(下)
  • 路由器刷机TP-Link tp-link-WDR5660 路由器升级宽带速度
  • VB.NET在 Excel 二次开发中的全面应用
  • uni-app使用组件button遇到的问题
  • 如何在Express.js中处理异常情况?
  • CKA认证 | Day7 K8s存储
  • ArcGIS Pro地形图四至角图经纬度标注与格网标注
  • 策略模式以及优化
  • linux自动化一键批量检查主机端口
  • Vue3入门(9)
  • 《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》
  • “鼎和财险一体化数据安全管控实践”入选信通院金融领域优秀案例
  • 探索多模态大语言模型(MLLMs)的推理能力