【2014广州市选day1】JZOJ2020年9月12日提高B组T4 字符串距离

题目

Description

给出两个由小写字母组成的字符串 X 和Y ,我们需要算出两个字符串的距离,定义如下:

1)我们可以在字符串的头、尾、中间插入若干空格,组成一个新的扩展串

2)对X扩展成扩展串X1,对Y扩展成扩展串Y1,并且令X1和Y1具有相同的长度

3)定义X1、Y1的距离为每个对应的字符的距离之和,其中两个空格的距离为0,两个非空格字符的距离为其ASCII码之差的绝对值,一个空格字符到任意非空格字符的距离为K

4)对于字符串X、Y,必然存在两个等长的扩展串X1、Y1,使得X1、Y1的距离达到最少,我们将这一距离定义为字符串X、Y的距离

Input

输入为三行,前两行是30位以内的由小写字母组成的字符串, 第三行是整数K(0<=K<=30)

Output

输出一行为一个整数,代表两个字符串的距离

Sample Input

cmo

snmn

2

Sample Output

7

题解

题意

给出两个字符串和字符串距离的定义

求这两个字符串的最短距离

分析

考虑\(DP\)

设\(f[i][j]\)为第一个字符串到了第\(i\)个位置,第二个字符串到了第\(j\)个位置

初始化:

\(f[i][0]=i*k,f[0][i]=k*i\)

那么就有

\(f[i][j]=min\begin{cases}f[i-1][j-1]+abs(a[i]-b[j])\\f[i-1][j]+k\\f[i][j-1]+k\end{cases}\)

Code

#include<bits/stdc++.h>
using namespace std;
int l1,l2,k,a[35],c[35],f[35][35];
char ch;
int main()
{
freopen("distance.in","r",stdin);
freopen("distance.out","w",stdout);
ch=getchar();
while (ch<'a'||ch>'z') ch=getchar();
while (ch>='a'&&ch<='z')
{
a[++l1]=ch-'a'+1;
ch=getchar();
}
while (ch<'a'||ch>'z') ch=getchar();
while (ch>='a'&&ch<='z')
{
c[++l2]=ch-'a'+1;
ch=getchar();
}
while (ch<'0'||ch>'9') ch=getchar();
while (ch>='0'&&ch<='9')
{
k=(k<<1)+(k<<3)+(ch-'0');
ch=getchar();
}
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]+abs(a[i]-c[j]),min(f[i-1][j],f[i][j-1])+k);
printf("%d\n",f[l1][l2]);
fclose(stdin);fclose(stdout);
return 0;
}

【2014广州市选day1】JZOJ2020年9月12日提高B组T4 字符串距离的更多相关文章

  1. 【2014广州市选day1】JZOJ2020年9月12日提高B组T3 消除游戏

    [2014广州市选day1]JZOJ2020年9月12日提高B组T3 消除游戏 题目 Description 相信大家玩过很多网络上的消除类型的游戏,一般来说就是在一个大拼图内找出相同的部分进行最大程 ...

  2. 【2014广州市选day1】JZOJ2020年9月12日提高B组T2 导弹拦截

    [2014广州市选day1]JZOJ2020年9月12日提高B组T2 导弹拦截 题目 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统 V1.0.但是这种导弹拦截系统有一个缺 ...

  3. 【Usaco 2009 Gold】JZOJ2020年9月19日提高B组T4 过路费

    [Usaco 2009 Gold]JZOJ2020年9月19日提高B组T4 过路费 题目 Description 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生财之 ...

  4. JZOJ2020年9月12日提高B组反思

    CSP第1轮倒计时:29天 JZOJ2020年9月12日提高B组反思 T1 放在T1却是最难的一题 明显需要高精度 但是我小学奥数没学好,不知道怎么把正有理数转化成分数 T2 明显的DP 可惜的是我文 ...

  5. 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你

    [五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...

  6. 【Usaco 2009 Gold】JZOJ2020年9月19日提高B组T3 头晕的奶牛

    [Usaco 2009 Gold]JZOJ2020年9月19日提高B组T3 头晕的奶牛 题目 Description 奶牛们发现,在农场里面赛跑是很有趣的一件事.可是她们一旦在农场里面不断地转圈,就会 ...

  7. 【Usaco 2009 Gold 】JZOJ2020年9月19日提高B组T2 电视游戏问题

    [Usaco 2009 Gold ]JZOJ2020年9月19日提高B组T2 电视游戏问题 题目 Description 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶叫兽的做法拿她们去电击戒瘾的,可 ...

  8. 【Usaco 2009 Silver】JZOJ2020年9月19日提高B组T1 音乐节拍

    [Usaco 2009 Silver]JZOJ2020年9月19日提高B组T1 音乐节拍 题目 Description FJ准备教他的奶牛弹奏一首歌曲,歌曲由N(1<=N<=50,000) ...

  9. JZOJ2020年9月19日提高B组反思

    CSP第一轮倒计时:22天 JZOJ2020年9月19日提高B组反思 今天比的不好,只有签到题过了 130,rank 20 T1 签到题 用二分直接切 AC 100 T2 觉得是依赖背包问题 但是我没 ...

随机推荐

  1. ASP.NET Core Authentication系列(四)基于Cookie实现多应用间单点登录(SSO)

    前言 本系列前三篇文章分别从ASP.NET Core认证的三个重要概念,到如何实现最简单的登录.注销和认证,再到如何配置Cookie 选项,来介绍如何使用ASP.NET Core认证.感兴趣的可以了解 ...

  2. 简单red5+obs推流实现直播系统开发,具体设置介绍

    前言:随便搞搞,先放一张效果图,

  3. 【SpringCloud】07.应用间的通信

    应用间通信 HTTP vs RPC Spring Cloud (HTTP) Dubbo (RPC) 1.SpringCloud中服务间两种restful调用方式 RestTemplate Feign ...

  4. 在windows下安装node-sass失败,提示\node-sass: Command failed,解决方案

    执行命令 yarn add node-sass@4.7.2 --dev --registry=https://registry.npm.taobao.org :报错 出现这个问题的原因一般是网络问题, ...

  5. kudu集群:kudu_master、kudu_tserver服务及数据的迁移(根据官网总结)

    是不是都需要一个声明,来一个: 声明: 本文只是总结本人本地模拟环境测试,并没有经过严格的线上测试.请自己在本地严格测试之后慎重使用在生产环境! kudu_master.kudu_tserver服务迁 ...

  6. tp3.2展示列表

    public function get_list($where=array(),$field="",$order = "id desc"){ $field = ...

  7. 08flask中get和post请求。

    1,get请求. 使用场景:获取信息并没有对服务器的数据或者资源进行修改,则用get. 传参:get请求传参是放在URL中,通过"?"的形式指定键值对. 2,post请求. 使用场 ...

  8. Android 架构组件-Lifecycle、LiveData、ViewModel

    Lifecycle Lifecycle组件包括LifecycleOwner.LifecleObserver,能方便监听Activity或者Fragment的生命周期. 步骤: 1.实现Lifecycl ...

  9. Python学习笔记5:模块/包

    1.模块 模块简单理解就是一组功能的集合. 在Python中,一个文件(.py)就是一个模块,文件名即模块名. 模块的好处是大大提高代码的可维护性,其次,代码不必从零开始.当一个模块编写完毕,就可以被 ...

  10. 线程范围内的环境变量---ThreadLocal

    package cn.itcast.heima2; import java.util.HashMap; import java.util.Map; import java.util.Random; p ...