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

P2758 编辑距离

题目

P2758 编辑距离

算法标签: 动态规划

思路

使用最小操作次数将 A A A转化为 B B B求最小操作次数, 设状态表示 f [ i ] [ j ] f[i][j] f[i][j]表示第一个字符串的前 i i i个字符和第二个字符串的前 j j j个字符相同的最小操作次数, 如何进行状态转移? 按照最后一步进行划分, 因为将字符串 A A A转化为 B B B有三种操作, 可以将集合划分为四类, 算法时间复杂度 O ( n 2 ) O(n ^ 2) O(n2)

代码

#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;const int N = 2010;int f[N][N];int main() {ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);string s1, s2;cin >> s1 >> s2;s1 = ' ' + s1;s2 = ' ' + s2;memset(f, 0x3f, sizeof f);for (int i = 0; i < s1.size(); ++i) f[i][0] = i;for (int i = 0; i < s2.size(); ++i) f[0][i] = i;for (int i = 1; i < s1.size(); ++i) {for (int j = 1; j < s2.size(); ++j) {if (s1[i] == s2[j]) f[i][j] = f[i - 1][j - 1];else {f[i][j] = min({f[i - 1][j], f[i][j - 1], f[i - 1][j - 1]}) + 1;}}}cout << f[s1.size() - 1][s2.size() - 1] << "\n";return 0;
}
http://www.xdnf.cn/news/5973.html

相关文章:

  • 深入理解 OAuth 2.0:技术核心与实战场景
  • java数组题(5)
  • 考研复习全年规划
  • 爬虫Incapsula reese84加密案例:Etihad航空(纯算法)
  • xss-labs靶场基础8-10关(记录学习)
  • 多线程进阶核心知识详解(通俗版)
  • Python+Streamlit实现登录页
  • python-pyqt6框架工具开发总结
  • PostgreSQL 的表连接方法
  • 25.5.13
  • 2025年金融创新、区块链与信息技术国际会议(FRCIT 2025 2025)
  • 深入解析 I/O 模型:原理、区别与 Java 实践
  • 【Redis 进阶】集群
  • mysql环境配置
  • 锐浪报表 Grid++Report 打印“跨页”文本,解决“文字被中间截断”问题
  • NLTK库: 数据集3-分类与标注语料(Categorized and Tagged Corpora)
  • Ubuntu 24.04 LTS系统上配置国内时间同步
  • “新五强”争锋,基础大模型玩家再洗牌
  • 第十七章 SPI——读写串行FLASH
  • 新华三H3CNE网络工程师认证—路由参数与比较
  • Timsort 算法
  • 基于Win在VSCode部署运行OpenVINO模型
  • FFmpeg多路节目流复用为一路包含多个节目的输出流
  • Vue框架的基本介绍
  • 蓝桥杯13届国B 出差
  • 微服务,服务粒度多少合适
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(20):复习
  • 【docker】--镜像管理
  • 佰力博科技准静态d33测试的注意事项
  • Java基础知识点集合