AcWing 902. 最短编辑距离(线性DP)

WinCC与PLC在西门子逻辑赛项中的通信配置避坑指南 本文针对西门子逻辑赛项中WinCC与PLC通信配置的常见问题,提供了一套实战避坑指南。重点解析了WinCC、PLC与EET仿真平台的三角通信架构,强调了IP地址规划、防火墙设置等关键环节的注意事项,并给出了系统化的故障诊断流程与排查技巧,帮助选手和技术人员快速定位并解决通信故障,确保监控系统稳定运行。 阅读详情

给定两个字符串A和B,现在要将A经过若干操作变为B,可进行的操作有:

  1. 删除–将字符串A中的某个字符删除。
  2. 插入–在字符串A的某个位置插入某个字符。
  3. 替换–将字符串A中的某个字符替换为另一个字符。

现在请你求出,将A变为B至少需要进行多少次操作。

输入格式

第一行包含整数n,表示字符串A的长度。

第二行包含一个长度为n的字符串A。

第三行包含整数m,表示字符串B的长度。

第四行包含一个长度为m的字符串B。

字符串中均只包含大写字母。

输出格式

输出一个整数,表示最少操作次数。

数据范围

1≤n,m≤10001≤n,m≤1000

输入样例:

10 
AGTCTGACGC
11 
AGTAAGTAGGC

输出样例:

4

 

 

闫式dp.jpg

 

状态表示 dp[i][j]
集合 : 所有吧a中的前i个字母 变成 b中前j个字母的集合的操作集合
属性 : 所有操作中操作次数最少的方案的操作数
状态计算
状态划分 以对a中的第i个字母操作不同划分
在该字母之后添加
添加一个字母之后变得相同,说明没有添加前a的前i个已经和b的前j-1个已经相同
即 : dp[i][j] = dp[i][j-1] + 1
删除该字母
删除该字母之后变得相同,说明没有删除前a中前i-1已经和b的前j个已经相同
即 : dp[i][j] = dp[i-1][j] + 1
替换该字母
替换说明对应结尾字母不同,则看倒数第二个
即: dp[i][j] = dp[i-1][j-1] + 1
啥也不做
对应结尾字母相同,直接比较倒数第二个
即: dp[i][j] = dp[i-1][j-1]

作者:jasonlin
链接:https://www.acwing.com/solution/content/10499/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



import java.io.*;
import java.lang.*;

class Main{
    
    static int n = 0, m = 0, N = 1010;
    static int[][] f = new int[N][N];
    
    public static void main(String[] args)throws Exception{
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.valueOf(buf.readLine().trim());
        String sa = buf.readLine();
        m = Integer.valueOf(buf.readLine().trim());
        String sb = buf.readLine();
        //初始化
        for(int i = 0; i <= n; i++) f[i][0] = i;
        for(int i = 0; i <= m; i++) f[0][i] = i;
        for(int i = 1; i <= n; ++i){
            for(int j = 1; j <= m; ++j){
                f[i][j] = Math.min(f[i][j-1], f[i-1][j]) + 1;
                if(sa.charAt(i - 1) == sb.charAt(j - 1)){
                    f[i][j] = Math.min(f[i][j], f[i-1][j-1]);
                }else{
                    f[i][j] = Math.min(f[i][j], f[i-1][j-1] + 1);
                }
            }
        }
        System.out.print(f[n][m]);
        
    }
}

 

【实战】LLaMA-Factory 如何做 LLM 的多轮对话微调 LLaMA-Factory 作为一个广受欢迎、易于使用的 LLM 微调框架,为开发者提供了便捷的途径来针对特定任务(包括多轮对话)优化模型。本文将深入探讨 LLaMA-Factory 如何支持多轮对话微调,涵盖其基本概念、数据准备、核心机制、评估方法等。简单来说,多轮对话是指包含两个或更多轮次(Turn)的交互过程,其中每一轮通常包含用户的一个输入和模型的一个输出。后续轮次的回应通常依赖于前面轮次的对话内容。模型需要理解并记忆对话历史。 阅读详情

相关推荐

Cloudflare 5秒盾逆向实战:13次请求背后的Python补环境框架搭建指南

本文深入解析了如何通过Python构建浏览器环境模拟框架,以应对Cloudflare 5秒盾等现代Web防护机制。文章详细拆解了其背后复杂的13次请求链,涵盖了JavaScript执行引擎集成、DOM事件模拟、网络请求控制及Canvas指纹等环境检测的完整实现方案,为自动化数据采集和逆向工程提供了实战指南。

gold的博客 348

AcWing基础算法

AcWing算法基础学习 快速排序 归并排序 二分 高精 前缀和 差分 双指针 位运算 离散化 区间合并

weixin_51624761的博客 2415

从零到一:PrimeTime静态时序分析入门指南

本文详细介绍了PrimeTime静态时序分析(STA)的入门指南,从基础概念到实际应用全面覆盖。内容包括时序路径分类、PrimeTime环境搭建、时序约束设置与验证、时序分析与报告解读等核心内容,帮助工程师快速掌握STA技术,解决数字芯片设计中的时序收敛问题。

weixin_28730131的博客 268

刷题网站

1. 力扣(这个网站中题解真的是非常丰富,适合新手刷题,不会的可以看看题解) 英文网址:https://leetcode.com/ 中文网址:https://leetcode-cn.com/ 2.hihoCoder 网址:https://hihocoder.com/ 3. 牛客网(题目质量还是ok的) 网址:https://www.nowcoder.com/ 4. 计蒜客(适合ACM竞赛) 网址:https://www.jisuanke.com/ 5. HDU 6. POJ 7.Co..

二哈 1万+

Windows11安装UE4+Airsim

Windows11安装UE4+Airsim

Legendyyy的博客 3743

FID指标实战:如何用Python快速计算生成图像的质量分数(附完整代码)

本文详细介绍了如何使用Python计算Fréchet Inception Distance(FID)指标,以评估生成图像的质量。通过完整的代码示例和优化技巧,帮助开发者快速实现FID计算,并解读分数背后的实际意义,适用于GAN和扩散模型的性能评估。

weixin_28718487的博客 376

AcWing-语法基础课

AcWing-语法基础课

kkoyy459的博客 4500

反激开关电源设计全解析:从CCM/DCM原理到PCB布局实战

开关电源作为现代电子设备的能量转换核心,其核心原理是通过高频开关动作实现高效的电能变换。反激拓扑因其结构简单、成本低廉且易于实现电气隔离,成为小功率离线式电源的主流选择。其技术价值在于通过变压器耦合实现能量存储与传递,解决了安全隔离与多路输出等关键需求,广泛应用于充电器、适配器及家电供电等场景。本文聚焦反激电路,深入剖析其CCM与DCM两种工作模式的原理差异及选型考量,并结合伏秒平衡定律与RCD钳位等热词,详解从变压器计算到MOSFET选型的完整工程设计流程。

weixin_31951365的博客 343

AcWing食用指南

​ AcWing是一个计算机编程相关知识学习网站,其中有算法课程与工程课程。适合计算机相关专业以及想要从事计算机相关专业工作的同学食用。这是一个很适合学习算法的平台,学习过程非常平滑,适合所有阶段的同学。

DM010maker的博客 7618

抖音Web端私信Protobuf逆向解析实战

本文详细解析了抖音Web端私信通信的逆向过程,发现其核心采用WebSocket传输Protobuf序列化数据。通过抓包获取二进制样本,利用protoc工具进行原始解码,并逐步推导和编写出对应的.proto协议定义文件,最终实现模拟消息的编码与解码,为理解私有协议逆向提供了完整实战案例。

water的专栏 761

从原理到落地:Mamba-YOLOv8 全面实战指南(源码 + 训练 + 部署一次学会)

在目标检测领域,CNN与Transformer的较量从未停歇。本文提出一种革命性的架构——,将状态空间模型(SSM)首次引入YOLO框架。实验表明,该模型在COCO数据集上达到54.3% mAP@0.5,推理速度达89 FPS(RTX 4090),相比原版YOLOv8提升12.7%精度与23%速度。本文将完整揭示其技术原理与工程实现,助您掌握这一前沿技术。

FJN110的博客 120

AcWing

About AcWing

良月澪二的博客 4600

35、使用 Geo 创建 GitLab 的分布式只读副本

本文详细介绍了如何使用GitLab Geo功能创建分布式只读副本,涵盖数据库主从配置、SSH密钥查找方式更改、通过Web UI添加从节点、激活哈希存储及状态检查等关键步骤。同时提供了常见问题解答和配置流程图,帮助用户快速部署并维护Geo集群,实现跨地域的高效数据同步与高可用架构。

chair的专栏 81

AcWing 902. 最短编辑距离 线性dp

AcWing 902. 最短编辑距离 这道题是用线性dp就可以解决,在这之前,我先给大家介绍一下我们大名鼎鼎的闫氏dp 首先我们要考虑状态表示,dp[i,j]表示a[1−-−i]变成b[1−-−j]的最小操作方案数,我们可以假设成dp[i,j]是成功把a[1~~i]变成b[1~j]的 然后状态计算,删除操作是在i-1,j已经匹配上了,多了一个i,那么我们就把它删了,插入操作是指,i,j-1匹配上了,但是我们要匹配上i,j需要再加一个字母,如果a[i]==b[j]那么我们就不需要改了,就直接使用dp[i-1

qq_52358098的博客 1141

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AcWing 902. 线性DP——最短编辑距离

注意我们是将该集合的操作分为①对最后一个字符进行操作和②对之前的字符操作,也即对其他位置的操作蕴含在第②部分中)

a131529的博客 761

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

线性DP AcWing 902. 最短编辑距离

线性DP AcWing 902. 最短编辑距离

T_Y_F_的博客 269

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

AcWing 902最短编辑距离(线性DP)

思路:dp[i][j]表示字符串s1…si变成t1…tj所需的最小操作数。可得三种状态。 1.删除操作d[i][j]=dp[i-1][j]+1; 2.添加操作d[i][j]=dp[i][j-1]+1; 3.替换操作如果此时a[i]==b[j]那么dp[i][j]=dp[i-1][j-1], 否则dp[i][j]=dp[i-1][j-1]+1 #include <cstdio> #include <cstring> #include <algorithm> #includ.

Ray.C.L的博客 410

[AcWing] 902. 最短编辑距离(C++实现)线性dp例题

[AcWing] 902. 最短编辑距离(C++实现)线性dp例题1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路: 3. 解法 ---------------------------------------------------解法--------------------------------------------------- #include <iostream&

cloud的博客 979

ACwing 902最短编辑距离 (线性dp)

ACwing 902最短编辑距离 (线性dp) 题意 给出两个字符串A,B,三种操作: 删除A中某个字符 A中插入一个字符 修改A中某个字符 问将A变成B最小的操作步数。 思路 dp[i][j]表示将A[1~i]变成B[1~j]的最小步数 状态转移: 对于每个A[i],有三种操作: 删除A[i],dp[i][j]=dp[i-1][j]+1 A[i]后面插入B[j],dp[i][j]=dp[i...

sstealer 285

[Acwing] 902. 最短编辑距离 线性DP

前言 哈哈哈哈哈,这也太简单了吧,DP?没想到啊,我竟然有一天可以看懂一道dp题 传送门 : https://www.acwing.com/problem/content/904/ 思路 每一个dp 都可以从最后一步考虑 (我格局小,见识短) 既然从最后一步考虑 就相当于 你站在 搜索树的最后一个节点 考虑当前节点 有几个操作可以走就行了 于是分类一下 删除最后一个节点, f[i-1][j] +1 增加一个节点, f[i][j-1]+1 做变换操作, 要么早就相同了 要么没有 相同 如果相同的话呢

qq_34364611的博客 160

acwing算法基础 线性dp 902 最短编辑距离

现在请你求出,将 A 变为 B 至少需要进行多少次操作。3替换–将字符串 A 中的某个字符替换为另一个字符。2插入–在字符串 A 的某个位置插入某个字符。第一行包含整数 n,表示字符串 A 的长度。第三行包含整数 m,表示字符串 B 的长度。1删除–将字符串 A 中的某个字符删除。第二行包含一个长度为 n 的字符串 A。第四行包含一个长度为 m 的字符串 B。输出一个整数,表示最少操作次数。字符串中均只包含大小写字母。

a7546391的博客 208

acwing 902 最短编辑距离 (线性DP)

题面 题解 对于两个字符串,我们一般用 f[i][j] 来表示第一个串的前 i 个字母和第二个串的前 j 个字母 ,然后我们划分集合,分三种操作。 删除操作 :f[i][j]我们需要删除a字符串的第i ,那么就需要确保a 的第前 i-1 个字母和b的前 j 个字母相同 ,那么转移方程就是 f[i-1][j]+1(操作步骤) 增加操作:f[i][j]我们需要增加第 i 字母使得 b的 j-1 和 a 原来的 i 匹配 ,那么转移方程就是 f[i][j-1] +1 修改操作 : f[i][j]

qq_44791484的博客 191

AcWing 902. 最短编辑距离(线性dp 初始化细节)

题意: 如题。 思路: f[i][j] 状态表示 : 集合:所有将 a[1 ~ i] 变成 b[1 ~ j] 的 操作方式 属性:操作数的最小值 min 状态计算 :依据最后一步考虑 三种操作,对应 f[i][j] 代表集合共有 三个子集 ① 删除操作:把 a[i] 删掉之后 a[1 ~ i] 和 b[1 ~ j] 匹配 所以之前要先做到 a[1 ~ (i-1)] 和 b[1 ~ j] 匹配 f[i-1][j] + 1 ② 插入操作:插入之后 a[i] 与 b[j] 完全匹配,所以插入的就..

Jacob0824的博客 404

AcWing 902. 最短编辑距离(线性dp)

题目链接 : 点击查看 题目描述: 给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有: 删除–将字符串 A 中的某个字符删除。 插入–在字符串 A 的某个位置插入某个字符。 替换–将字符串 A 中的某个字符替换为另一个字符。 现在请你求出,将 A 变为 B 至少需要进行多少次操作。 输入输出格式: 输入 第一行包含整数 n,表示字符串 A 的长度。 第二行包含一个长度为 n 的字符串 A。 第三行包含整数 m,表示字符串 B 的长度。 第四行包含一个长度为 m

在森林里麋了鹿 225

Acwing--902. 最短编辑距离(线性dp)

给定两个字符串AA和BB,现在要将AA经过若干操作变为BB,可进行的操作有: 删除–将字符串AA中的某个字符删除。 插入–在字符串AA的某个位置插入某个字符。 替换–将字符串AA中的某个字符替换为另一个字符。 现在请你求出,将AA变为BB至少需要进行多少次操作。 输入格式 第一行包含整数nn,表示字符串AA的长度。 第二行包含一个长度为nn的字符串AA。 第三行包含整数mm,表示字符串BB的长度。 第四行包含一个长度为mm的字符串BB...

with_wine的博客 731

AcWing 902 最短编辑距离 题解(动态规划—DP—线性DP)

#include<iostream> #include<algorithm> using namespace std; const int N = 1010; int n, m; char a[N], b[N]; int f[N][N];//状态记录数组,f[i][j]表示将a数组的前i位=数组的前j位最少需要多少步 int main() { scanf("%d%s", &n, a + 1); scanf("%d%s", &m, b + 1); f.

qiaodxs的博客 110
上一篇: AcWing 897. 最长公共子序列(线性DP)
下一篇: AcWing 899. 编辑距离(线性DP)
AARM
博客等级 码龄10年 10粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值