AcWing 897. 最长公共子序列

动态规划就是多见识应用题就完事儿了,也没有什么好说的。
讲解参考:
【E05 线性DP 最长公共子序列】
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#define N 1010
using namespace std;
char a[N],b[N];
int n,m;
int f[N][N];
int main(){cin >> n >> m >> a + 1 >> b + 1 ;for(int i = 1; i <= n ; ++ i) {for(int j = 1; j <= m ; ++ j){if(a[i] == b[j]){f[i][j] = f[i - 1][j - 1] + 1;}else{f[i][j] = max(f[i - 1][j],f[i][j - 1]);}}}cout << f[n][m];return 0;
}

输出最长公共子序列的代码,(STL版)
Runtime环境:c++17

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>  // 用于 reverse 函数using namespace std;pair<int, string> lcs(const string& s1, const string& s2) {int m = s1.size();int n = s2.size();// 初始化 dp 数组vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));// 填充 dp 数组for (int i = 1; i <= m; ++i) {for (int j = 1; j <= n; ++j) {if (s1[i - 1] == s2[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;} else {dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}}}// 获取 LCS 的长度int lcs_length = dp[m][n];// 回溯找到 LCS 序列string lcs_seq;int i = m, j = n;while (i > 0 && j > 0) {if (s1[i - 1] == s2[j - 1]) {lcs_seq.push_back(s1[i - 1]);--i;--j;} else if (dp[i - 1][j] > dp[i][j - 1]) {--i;} else {--j;}}// 由于回溯是从最后开始的,所以需要反转字符串reverse(lcs_seq.begin(), lcs_seq.end());return {lcs_length, lcs_seq};
}int main() {string s1 = "ABCBDABQ";string s2 = "BDCABQ";// 调用 LCS 函数auto [length, sequence] = lcs(s1, s2);// 输出结果cout << "最长公共子序列长度: " << length << endl;cout << "最长公共子序列: " << sequence << endl;return 0;
}

c版

#include<iostream>
#include<algorithm>
#define N 11
using namespace std;
char a[N],b[N];
int n,m;
int f[N][N];
char seq[N];
int main(){cin >> n >> m >> a + 1 >> b + 1 ;for(int i = 1; i <= n ; ++ i) {for(int j = 1; j <= m ; ++ j){f[i][j]=max(f[i-1][j],f[i][j-1]);if(a[i]==b[j]) f[i][j]=max(f[i][j],f[i-1][j-1]+1);}}cout << f[n][m] << endl;//最长子序列输出int i = n , j = m;string str;while(i&&j){if(a[i] == b[j]){str += a[i];i--,j--;}else if(f[i - 1][j] > f[i][j - 1]){i--;}else{j--;}}//不逆置字符串,直接逆序输出就完事儿了for(int i=str.size()-1;i>=0;--i)cout << str[i];return 0;
}

PS,输出最长子序列的代码我尝试了10位的两个,好像是正确的,输出长度的啃腚没问题,输出最长子序列是啥的没咋仔细验证过,是GPT生成的代码

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

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

相关文章

Loki Unable to fetch labels from Loki (no org id)

应该是多租户相关导致的 参考文档: 参考文档cMulti-tenancy | Grafana Loki documentationDescribes how Loki implements multi-tenancy to isolate tenant data and queries.https://grafana.com/docs/loki/latest/operations/multi-tenancy/ https://github.com/grafana…

主流AI绘画工具-StableDiffusion本地部署方法(mac电脑版本)

Stable Diffusion是一款强大的AI生成图像模型&#xff0c;它可以基于文本描述生成高质量的图像。对于想要在本地运行此模型的用户来说&#xff0c;使用Mac电脑部署Stable Diffusion是一个非常吸引人的选择&#xff0c;特别是对于M1或M2芯片的用户。本文将详细介绍如何在Mac上本…

高效能低延迟:EasyCVR平台WebRTC支持H.265在远程监控中的优势

TSINGSEE青犀视频EasyCVR视频汇聚平台在WebRTC方面确实支持H.265编码&#xff0c;尽管标准的WebRTC API在大多数浏览器中默认并不支持H.265&#xff08;也称为HEVC&#xff0c;高效视频编码&#xff09;编码。EasyCVR平台通过一系列创新的技术手段&#xff0c;实现了在WebRTC协…

食家巷中秋美食,味蕾上的团圆盛宴

月到中秋分外明&#xff0c;在这个充满温情与思念的节日里&#xff0c;美食成为了人们传递情感、共享团圆的重要载体。而食家巷&#xff0c;以其独特的中秋美食&#xff0c;为这个佳节增添了一抹别样的风味。 走进食家巷&#xff0c;仿佛踏入了一个美食的宝藏之地。这里的传统…

excel规划求解结合vba宏笔记

目录 概念与配置 规划求解定义 excel设置规划求解 宏的基本操作 excel批量进行规划求解案例 加载规划求解模块 宏的设置 宏录制vba 其他案例 概念与配置 规划求解定义 运用“规划求解”定义并求解问题 - Microsoft 支持 excel设置规划求解 EXCEL规划求解的简明教程…

突破代码:克服编程学习中的挫折感

目录 一、心态调整&#xff1a;心理韧性的培养 接受挫折是学习的一部分 设置实际的学习目标 保持学习的乐趣 二、学习方法&#xff1a;策略的实施 逐步解决问题 寻找多样的学习资源 定期复习与实践 三、成功经验&#xff1a;实例的启示 Debug的技巧掌握 算法的深入理…

开发中如何在运行/调试时将项目热部署到Tomcat

这里有一篇不错的博客&#xff0c;可以参考 http://t.csdnimg.cn/oWcgm 正常情况下&#xff0c;我们将web项目打包成war包后&#xff0c;需要放到tomcat的webapps路径下&#xff0c;然后启动tomcat&#xff0c;才能正常访问。但是这在开发阶段是极为不便的。因此可以使用两种方…

Qt_两种创建组件的方式-通过图形化-通过代码

文章目录 一、通过图形化的方式&#xff0c;在界面上创建一个控件&#xff0c;显示hello world1.打开UI设计界⾯2.拖拽控件⾄ ui 界⾯窗⼝并修改内容3.构建并运行 二、通过代码的方式&#xff0c;通过编写代码&#xff0c;在界面上创建控件&#xff0c;显示hello world在Widget…

AIGC提示词(2):塑造未来内容创作的核心力量

引言 &#x1f31f; 在这个数字化的时代&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;正变得越来越普遍。从自动写作到图像生成&#xff0c;AI正以前所未有的速度和多样性创造内容。然而&#xff0c;要实现高质量和相关性强的内容生成&#xff0c;关键在于有效地…

已成功入职小米大模型岗!!大模型面试其实挺水的,hr听到这些直接过

小米大模型面试180题 1、目前比较受欢迎的开源大模型有哪些&#xff1f; GPT系列&#xff1a;由OpenAl开发的生成式预训练模型&#xff0c;如 GPT-3。 BERT系列&#xff1a;由Google开发的转换式预训练模型&#xff0c;如BERT、RoBERTa等。 T5系列&#xff1a;由Google开发的基…

003、架构_详解(重点)

GoldenDB 分布式数据库框架 DN和RDB增加了备节点;引入新模块CM,且GTM、MDS、PM、CM都增加备节点;MDS、PM、CM、RDB被统一在了管理节点之中;GTM和MDS间多了一条连线,因为GTM的切换由MDS把控;初步系统架构mysqld:一般称为DB节点,负责单个节点的数据处理; dbproxy:一般…

Gitee上传项目(从0开始)

1.默认你Git已经下载好的情况下。 下载好的两种显示&#xff1a; 1.右击桌面显示这个 2.如果没有情况1出现&#xff0c;需要自己去创建快捷方式 2.去网站创建仓库 网站参考&#xff1a;yanyongzhitest/java_web - 码云 - 开源中国 (gitee.com) 新建仓库&#xff1a; 仓库名…

版本管理工具 Git 的下载安装及使用

1 基本介绍 Git 是目前最流行的分布式版本控制软件 什么是分布式版本控制软件&#xff1f; 所有版本信息仓库全部同步到本地的每个用户可以在本地查看所有版本历史&#xff0c;可以离线在本地提交&#xff0c;只需在连网时 push 到相应的服务器或其他用户那里。每个用户那里…

为什么echarts极坐标柱形图的图形显示的特别小呢??如何解决??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

最新Vmware17的WIn10虚拟机开箱即用,免安装

这篇文章分享的Vmware安装Win10的教程&#xff0c;如过有些懒得装Win10的同学可以会直接使用我的WIn10镜像压缩包打开即可 Win10镜像压缩包下载 tips&#xff1a;⬆️⬆️包含Vmware17安装包 使用方法&#xff0c;打开Vmware

皕盛电商平台:为合作伙伴提供广阔的发展空间

随着互联网的快速发展&#xff0c;我国电商行业已经取得了显著的成果&#xff0c;越来越多的企业和个人投身于电商领域。在众多电商平台中&#xff0c;皕盛电商平台以其独特的方式&#xff0c;为消费者、商家和合作伙伴创造了一个全新的电商生态圈。 一、关于皕盛电商平台 皕…

Redis集群搭建以及用idea连接集群

一、redis的集群搭建&#xff1a; 判断一个是集群中的节点是否可用,是集群中的所用主节点选举过程,如果半数以上的节点认为当前节点挂掉,那么当前节点就是挂掉了,所以搭建redis集群时建议节点数最好为奇数&#xff0c;搭建集群至少需要三个主节点,三个从节点,至少需要6个节点。…

零基础学习Redis(7) -- hash类型命令使用

Redis本身就是通过哈希表的方式组织数据&#xff0c;同时redis中的value也可以是另一个哈希表。 1. 常用命令 1. hset / hsetnx hset key filed1 value1 filed2 value2 ... hset 用于把键值对存入value中&#xff0c;这里的key为redis组织的键&#xff0c; filed1 value1 fil…

JavaWeb笔记整理10——JWT令牌、Filter、Interceptor

目录 1.简介 2.生成和校验 3.登录-生成令牌 4.过滤器Filter 快速入门 Filter执行流程 Filter拦截路径 过滤器链 登录校验Filter 流程 代码 5.拦截器Interceptor 快速入门 Interceptor拦截路径 执行流程 代码 继笔记04-session cookie 1.简介 2.生成和校验 /*…

计算机毕业设计选题推荐-摇滚音乐鉴赏网站-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…