1、对于长度相同的2个字符串A和B,其距离定义为相应位置字符距离之和。2个非空格字符的距离是它们的ASCII码之差的绝对值。空格与空格的距离为0,空格与其他字符的距离为一定值k。

  在一般情况下,字符串A和B的长度不一定相同。字符串A的扩展是在A中插入若干空格字符所产生的字符串。在字符串A和B的所有长度相同的扩展中,有一对距离最小的扩展,该距离称为字符串A和B的扩展距离。

算法要求如下:

1、 数据输入:第1行是字符串A,第2行是字符串B,第3行是空格与其他字符的距离定值k。

2、 输出:字符串A和B的扩展距离。

Input:

cmc

snmn

2

Output:

  10

注:设字符串A和B的子串A[1..i]和B[1..j]的扩展距离为val(i,j),则val(i,j)具有最优子结构性质,递归定义为:val(i,j)=min{val(i-1,j)+k, val(i,j-1)+k, val(i-1,j-1)+dist(ai,bj)}

dp思想:

  将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

Code:

#include <bits/stdc++.h>
using namespace std;
const int maxn=;
int dp[maxn][maxn];
string s,k;
int dist(int i,int j)
{
int p1=s[i-]-'a';
int p2=k[j-]-'a';
return abs(p1-p2);
}
int main()
{
memset(dp,,sizeof(dp));
cin>>s>>k;
int t;
cin>>t;
int len = max(s.size(),k.size());
memset(dp,,sizeof(dp));
for(int i=;i<=s.size();i++)
{
dp[i][]=t*i;
}
for(int i=;i<=k.size();i++)
{
dp[][i]=t*i;
}
for(int i=;i<=s.size();i++)
{
for(int j=;j<=k.size();j++)
{
dp[i][j]=min(dp[i-][j-]+dist(i,j),min(dp[i-][j]+t,dp[i][j-]+t));
}
}
int len1=s.size();
int len2=k.size();
cout<<dp[len1][len2]<<endl;
return ; }

 

2、在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或 右下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为0~99。

Input:

5 //表示三角形的行数 接下来输入三角形

7

3  8

8  1  0

2  7  4  4

4  5  2  6  5

Output:

  30

dp基本思想:

  将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

Code:

#include <bits/stdc++.h>
using namespace std;
#define Max 101
int D[Max][Max];
int n;
int maxSum[Max][Max];
int MaxSum(int i,int j)
{
if(maxSum[i][j]!=-)
return maxSum[i][j];
if(i==n)
maxSum[i][j]=D[i][j];
else
{
int x=MaxSum(i+,j);
int y=MaxSum(i+,j+);
maxSum[i][j]=max(x,y)+D[i][j];
}
return maxSum[i][j];
}
int main()
{
int i,j;
cin>>n;
for(i=;i<=n;i++)
for(j=;j<=i;j++)
{
cin>>D[i][j];
maxSum[i][j]=-;
}
cout<<MaxSum(,)<<endl;
return ;
}

dp[2019.5.25]_2的更多相关文章

  1. dp[2019.5.25]

    1.实例计算(写出计算过程): 1)对维数为序列<5, 10, 3, 12, 5, 50, 6>的各矩阵,找出其矩阵链乘积的一个最优加全部括号. 这是一个矩阵连乘问题,基本知识可以参考: ...

  2. [2019.03.25]Linux中的查找

    TMUX天下第一 全世界所有用CLI Linux的人都应该用TMUX,我爱它! ======================== 以下是正文 ======================== Linu ...

  3. Alpha冲刺(2/10)——2019.4.25

    所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(2/10)--2019.4.25 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...

  4. Beta冲刺(4/7)——2019.5.25

    所属课程 软件工程1916|W(福州大学) 作业要求 Beta冲刺(4/7)--2019.5.25 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪万里 ...

  5. [MP3]MP3固件持续分享(2019.1.25)

    转载自我的博客:https://blog.ljyngup.com/archives/179.html/ 所有的固件到我的博客就可以下载哦 最后更新于2019.2.1 前言 这篇文章会持续更新不同型号的 ...

  6. 2019.03.25 bzoj4572: [Scoi2016]围棋(轮廓线dp)

    传送门 题解可以参见zjjzjjzjj神仙的,写的很清楚. 代码: #include<bits/stdc++.h> #define ri register int using namesp ...

  7. IntelliJ IDEA 2018.3.3配置 Tomcat 9,控制台出现中文乱码 “淇℃伅”(2019/01/25)

    (win10系统) 全新idea配置全新版本Tomcat突遇 “淇℃伅”,网上大部分解决方案均已失效 似乎是idea与Tomcat命令行输出格式不一致所致,千辛万苦在某一小角落发现这个方法,一针见血, ...

  8. 纪中OJ 2019.01.25【NOIP提高组】模拟 B 组 T2 数字对

    声明 数字对 Time Limits: 2000 ms    Memory Limits: 262144 KB Description 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题.  ...

  9. 2019.3.25 SQL语句(进阶篇1)

    运算符 基本的加减乘除取余都可以在SQL中使用 新建Employee1表并添加数据 create table Employee1 (eid int primary key auto_increment ...

随机推荐

  1. sem_open 信号量操作

    sem_open,计算机用语.意思是创建并初始化有名信号量或打开一个已存在的有名信号量 sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享. se ...

  2. go语言合并两个数组

    https://stackoverflow.com/questions/16248241/concatenate-two-slices-in-go Add dots after the second ...

  3. Pycharm----破解码的获取

    网站:http://idea.lanyus.com/ 复制后,粘贴到pycharm中的激活即可

  4. BZOJ 3931 / Luogu P3171 [CQOI2015]网络吞吐量 (最大流板题)

    题面 中文题目,不解释: BZOJ传送门 Luogu传送门 分析 这题建图是显然的,拆点后iii和i′i'i′连容量为吞吐量的边,根据题目要求,111和nnn的吞吐量看作∞\infty∞. 然后用di ...

  5. 「ZJOI2014」力 FFT

    FFTl裸题,小于的部分直接做,大于的部分倒序后再做就行了. #include <bits/stdc++.h> using namespace std; const int MAXN = ...

  6. 006_linux驱动之_ioremap函数使用

    (一)学习linux驱动之初,对ioremap函数的个人理解 (二)博客:实验探究 ioremap 这篇文章作者通过验证来阐述自己的观点,个人觉得挺好的 (三)函数原型 基本简介 void * __i ...

  7. set/unset

    自定义一个变量 name=value 查看现有变量 删除变量或函数 unset name

  8. Noip2014 提高组 Day1 T1 生活大爆炸版石头剪刀布 + Day2 T1 无线网络发射器选址

    Day1 T1 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的升级版游戏. 升 ...

  9. 【概率论】3-3:累积分布函数(Cumulative Distribution Function)

    title: [概率论]3-3:累积分布函数(Cumulative Distribution Function) categories: Mathematic Probability keywords ...

  10. House Lawn Kattis - houselawn

    Problem You have just bought a new house, and it has a huge, beautiful lawn. A lawn that needs cutti ...