字串距离

luogu 1279

题目大意

给出两个字符串,让你加上若干空格,使其长度相同
对于第i位,如果都是字母那代价就是ASCII码的差值,如果一个是字母那就是k,如果没有一个是字母那就是0,让你求最小代价

输入样例

cmc
snmn
2

输出样例

10

数据范围

∣S∣⩽2000,1⩽K⩽100|S|\leqslant 2000,1\leqslant K\leqslant 100∣S∣⩽2000,1⩽K⩽100

解题思路

设fi,jf_{i,j}fi,j​为字符串A前i个字符和字符串B前j个字符匹配的最小代价
那么有:
fi,j=min{fi−1,j−1+abs(s1i−s2j),fi−1,j+k,fi,j−1+k}f_{i,j}=min\{ f_{i-1,j-1}+abs(s1_i-s2_j),f_{i-1,j}+k,f_{i,j-1}+k\}fi,j​=min{fi−1,j−1​+abs(s1i​−s2j​),fi−1,j​+k,fi,j−1​+k}
第一个是两个字符匹配,后面是和空格匹配(两个空格匹配没有贡献,所以不用管)

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 2010
using namespace std;
int k, l1, l2, f[N][N];
string str1, str2;
int abss(int x)
{return x < 0 ? -x : x;
}
int main()
{cin>>str1;cin>>str2;l1 = str1.size();l2 = str2.size();str1 = ' ' + str1;str2 = ' ' + str2;scanf("%d", &k);memset(f, 127/3, sizeof(f));f[0][0] = 0;for (int i = 1; i <= l1; ++i)f[i][0] = k * i;for (int i = 1; i <= l2; ++i)f[0][i] = k * i;for (int i = 1; i <= l1; ++i)for (int j = 1; j <= l2; ++j)f[i][j] = min(f[i - 1][j - 1] + abss(str1[i] - str2[j]), min(f[i - 1][j] + k, f[i][j - 1] + k));printf("%d", f[l1][l2]);return 0;
}

【DP】字串距离(luogu 1279)相关推荐

  1. P1279 字串距离【动规】

    P1279 字串距离 link 思路: 设f[i][j]表示A字符串为i的前缀,B字符串为j的前缀的最小距离. 对于f[i][0](i ~ l e n A ) len_A) lenA​), f[0][ ...

  2. 洛谷1279 字串距离

    题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为"abcbcd",则字符串"abcb□cd"," ...

  3. P1279 字串距离 (动态规划)

    题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为"abcbcd",则字符串"abcb□cd"," ...

  4. 洛谷P1279 字串距离 (动态规划)

    题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为"abcbcd",则字符串"abcb□cd"," ...

  5. 【Foreign】字串变化 [DP]

    字串变化 Time Limit: 10 Sec  Memory Limit: 128 MB Description 定义一个(大写字母)字符串集合{S},初始时值包含一个给定的字符串S1,每次从中任意 ...

  6. [指数型生成函数专练]chocolate,红色病毒问题,排列组合,字串数

    文章目录 T1:chocolate 题目 题解 code T2:"红色病毒"问题 题目 题解 code T3:排列组合 题目 题解 code T4:字串数 题解 code T1:c ...

  7. 字符串相关处理kmp,前缀数,后缀树,后缀数组,最长回文串,最长重复字串,最长非重复字串

    1. 最长回文串 一般用后缀数组或者后缀树可以解决, 用此方法:http://blog.csdn.net/v_july_v/article/details/6897097 预处理后缀树,使得查询LCA ...

  8. P1032 字串变换(bfs)

    https://www.luogu.org/problemnew/show/P1032 题目描述 已知有两个字串A,BA,B及一组字串变换的规则(至多66个规则): A 1-> B 1 A 2 ...

  9. php无重复字符的最长子串,无重复字符的最长字串问题

    leetcode3:无重复字符的最长字串问题 问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释 ...

最新文章

  1. 简单介绍Windows中将Nginx添加为服务的问题
  2. OSChina 周六乱弹 ——土肥圆装高富帅相亲节目现场拆穿
  3. 20款效果非常棒的 jQuery 插件分享
  4. Java Signal实例
  5. wpf Combobox 样式的问题
  6. istio-opentracing链路追踪方案
  7. synchronized 线程同步,添加对象锁与类锁
  8. webstorm缩进两个字符
  9. 乐动手环app下载安装_乐动手环app下载安装
  10. JSF Chapter11
  11. QT软件开发之基础控件--2.4.4 QTextEdit文本编辑器
  12. css图片横向压缩,【css样式生成 图片合并压缩工具】Sprite,你值得拥有
  13. nginx启动,重启,关闭命令
  14. js 笔记-LHS RHS 作用域
  15. 层次聚类算法之single-linkage和complete-linkage(C语言实现)
  16. linux搭建本地YUM源配置详细步骤
  17. parrot无人机蓝牙协议
  18. Ubantu18.04系统安装Hexagon SDK教程
  19. 易速还原3.0核心版发布
  20. 基于springboot+mybatisplus+vue-科技项目评审及专家库管理系统

热门文章

  1. php复制整个文件夹,PHP实现递归复制整个文件夹的类实例
  2. php defunct,通过swoole观察僵尸进程和孤儿进程出现和消亡
  3. python 创建目录_第二天:Python中目录及文件操作
  4. 软件构造学习笔记-第三周
  5. Leetcode 数据结构与算法题解大全——目录(推荐收藏,持续更新)
  6. [蓝桥杯][算法提高VIP]排列式-全排列
  7. [蓝桥杯2017初赛]算式900+dfs,next_permutation
  8. B. Product(2019ICPC西安邀请赛)(杜教筛)
  9. 经典二分:秦腾与教学评估
  10. Educational Codeforces Round 37 (Rated for Div. 2) E. Connected Components? 暴力 + 补图的遍历