最长公共子序列 蓝桥杯 1189

2023-11-02

题目描述:给定一个长度为n数组A和一个长度为m数组B。请你求出它们的最长公共子序列长度为多少

输入描述:输入第一行包含两个整数n,m.第二行包含n个整数ai,第三行包含m个整数bi,1<=n,m<=10^3,1<=ai,bi<=10^9

输出描述:输出一行整数表示答案

思路:如果用暴力枚举的方式,当n和m长度大时,情况太多

所以想到了动态规划,不停更新dp数组

分两种情况

1.a[i]=b[i],这样的话dp[i][j]=dp[i-1][j-1]+1

2.a[i]!=b[i],这样的话dp[i][j]=max(dp[i-1][j],dp[i][j-1])

n,m=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
# 初始化一个二维数组,行数为n的大小,列数为m的大小
res = [[0 for i in range(m + 1)] for j in range(n + 1)]
for i in range(1, n+1):
    for j in range(1, m+1):
        if a[i - 1] == b[j - 1]:
            res[i][j] = 1 + res[i - 1][j - 1]
        else:
            res[i][j] = max(res[i][j-1],res[i-1][j])

print(res[-1][-1])

最长公共子序列和最长公共子串的区别是,公共子序列可以不连续,公共子串必须连续,如果本题改为求最长公共子串则需要用一个maxres记录最长公共子串的值

n,m=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
# 初始化一个二维数组,行数为n的大小,列数为m的大小
res = [[0 for i in range(m + 1)] for j in range(n + 1)]
maxres=0
for i in range(1, n+1):
    for j in range(1, m+1):
        if a[i - 1] == b[j - 1]:
            res[i][j] = 1 + res[i - 1][j - 1]
        else:
            res[i][j] = 0
        maxres = max(res[i][j],maxres)

print(maxres)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最长公共子序列 蓝桥杯 1189 的相关文章

  • Python 类型提示 Dict 语法错误 可变默认值是不允许的。使用“默认工厂”

    我不知道为什么解释器会抱怨这个类型的字典 对于这两个实例 我得到一个 不允许可变默认值 使用默认工厂 语法错误 我使用的是 python 3 7 3 from dataclasses import dataclass from typing
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • MongoEngine 查询具有以列表中指定的前缀开头的属性的对象的列表

    我需要在 Mongo 数据库中查询具有以列表中任何前缀开头的特定属性的元素 现在我有一段这样的代码 query mymodel terms term in query terms 并且这会匹配在列表 term 上有一个项目的对象 该列表中的
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或

随机推荐

  • ANDROID项目重构之路:架构篇

    原创文章 转载请注明 转载自Keegan小钢 写于2015 06 05 去年10月底换到了新公司 做移动研发组的负责人 刚开始接手android项目时 发现该项目真的是一团糟 首先是其架构 是按功能模块进行划分的 本来按模块划分也挺好的 可
  • <cwchar> (wchar.h)

    英文原文地址 https cplusplus com reference cwchar 我会持续更新 我的翻译如下
  • 1. 开源协议

    开源 Open Source 一词 最早由Christine Peterson女士在1998年提出 它消除了人们对自由软件 Free Software 的理解歧义 软件的分类 商业软件 收费 元代码不公开 共享软件 免费使用 源代码不公开
  • 第三章 系统分析

    第三章 系统分析 本章将对微信小程序及签到应用市场进行需求分析 首先对系统进行功能需求分析 分析确定受众群 分析系统所要实现的功能 然后对系统进行数据需求分析 为了更好地完成系统项目 为项目的进一步开发工作做准备 了解具体数据 有利于软件的
  • Git 开发分支代码上线流程

    开发分支代码上线流程 开发分支 1 切换到master上 pull最新代码 git checkout mater git pull 2 打开发分支 git branch feature 自己taped的任务号 例如 git branch f
  • Linux中 的 " "(双引号) ' ' (单引号) ` `(反引号)

    1 基础篇 单引号 所见即所得 回将里面的内容原封不动的展示出来 双引号 和单引号类似 但里面的特殊符号会被解析 比如 反引号 都是特殊符号 反引号 反引号内的内容将优先执行 优先执行里面的命令 并将结果保留下来 无引号 和双引号类似 但此
  • sql server 查询某个字段是否有值 返回bool类型

    sql server 查询某个字段是否有值 返回bool类型 true 或 false SELECT ColumnCode CONVERT BIT CASE WHEN LEN ColumnCode gt 0 THEN 1 ELSE 0 EN
  • aop默认代理方式是什么

    jdk代理 可以通过proxy target class修改 proxy target class属性值决定是基于接口的还是基于类的代理被创建 如果proxy target class 属性值被设置为true 那么基于类的代理将起作用 这时
  • windTerm—Xshell、SercureCRT等替代品

    最常用的ssh工具 莫过于SercureCRT Xshell 但是这两个都收费 某些场景下不好使用 免费的有putty 但是这个太简陋了 用起来不舒服 finalShell eclecterm tabby 这三个很炫酷 但安装包和占用内存都
  • knn算法,利用numpy简单实现

    首先明确概念 回归 预测体重 预测房价 预测损失 结果是不容易确定的 分类 预测男女 预测是否能通过考试 结果是容易确定的 我的理解 回归针对连续的数据 分类针对离散的数据 回归连续 分类离散 classfication和regressio
  • 在vscode上快速打开php文件(小白手把手教小白,超级详细)

    第一次写博客 如有不足 欢迎指正 在vscode中打开php文件如下 准备工作 先下载小皮面板 记住下载路径 在其中打开Apache和MySQL 然后我们步入正题 1 首先打开vscode 在其中打开小皮面板所在文件夹 在WWW文件里随便建
  • STM32系列 (一)开发环境的搭建

    STM32简介 STM32是意法半导体 ST 推出一款32位的单片机 STM32具有超低的价格 超多的外设 丰富的型号 优异的实时性 极低的开发成本等优势 STM32凭借其产品线的多样化 极高的性价比 简单易用的库开发方式 迅速在众多32位
  • 一、SQL Server列名显示无效却可以运行问题解决?

    一 SQL Server列名显示无效却可以运行问题解决 在SQLServer中 当设计 修改 表结构之后 再用SQL语句时 会出现列名无效 然后却可以运行 如下图 出现这种情况的原因是SQL Server的intellisense 智能感知
  • C语言volatile关键字的作用

    volatile是易变的 不稳定的意思 volatile关键字和const一样是一种类型修饰符 用它修饰的变量表示可以被某些编译器未知的因素改变 比如操作系统 硬件或者其它线程等 遇到这个关键字声明的变量 编译器对访问该变量的代码就不再进行
  • TypeError: Cannot read properties of undefined (reading ‘licenseNum‘) at Proxy

    这是因为在定义的时候 我们只定义了一层的结构 比如 info 其实后端返回的是 info goods goodsName cheng 此时调用goodsName info goods goodsName 就会报错info goods und
  • 2021-12-24 vue项目兼容IE

    Vue 不支持 IE8 及以下版本 因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性 但对于 IE9 Vue 底层是支持 vue cli4脚手架搭建的前端项目 vue版本2 6 12 browserslist配置 指
  • System.Single

    浮点 类型 别名 float System Single double System Double decimal System Decimal 字符 类型 别名 允许的值 bool System Boolean true flase ch
  • 跟阿铭学Linux第六章答案,Linux磁盘管理

    hda一般是指IDE接口的硬盘 hda指第一块硬盘 hdb指第二块硬盘 等等 sda一般是指SATA接口的硬盘 sda指第一块硬盘 sdb指第二块硬盘 等等 du b显示的是文件的实际大小 du k显示的是文件占用的磁盘块的大小 所以磁盘块
  • 性能测试压力测试

    性能测试指标 并发用户数 TPS Transaction Per Second 每秒事务数 系统的性能由TPS决定 mysql 记一次接口压力测试与性能调优 Apache JMeter是Apache组织开发的基于Java的压力测试工具 用于
  • 最长公共子序列 蓝桥杯 1189

    题目描述 给定一个长度为n数组A和一个长度为m数组B 请你求出它们的最长公共子序列长度为多少 输入描述 输入第一行包含两个整数n m 第二行包含n个整数ai 第三行包含m个整数bi 1 lt n m lt 10 3 1 lt ai bi l