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

最好的网站建设公司八种营销模式

最好的网站建设公司,八种营销模式,做一个网站,建设银行宁波分行网站最长公共子序列一、题目二、思路1、状态转移方程(1)状态表示(2)状态转移2、循环设计三、代码一、题目 二、思路 这道题是一个很经典的DP问题,那么我们来看一下如何分析。 DP问题我们需要考虑两个问题:第一…

最长公共子序列

  • 一、题目
  • 二、思路
      • 1、状态转移方程
        • (1)状态表示
        • (2)状态转移
      • 2、循环设计
  • 三、代码

一、题目

在这里插入图片描述

二、思路

这道题是一个很经典的DP问题,那么我们来看一下如何分析。

DP问题我们需要考虑两个问题:第一个问题就是状态转移方程的书写,第二个问题就是我们如何去设计循环。

第一个问题的作用是有效地实现状态之间的转移,第二个问题的作用是保证我们能够从小到大,不重不漏的枚举出每一个子问题。

1、状态转移方程

(1)状态表示

状态的表示一个关键因素就是能够表示这个问题的规模大小
由于这道题设计到了两个字符串,那么我们利用f(i,j)f(i,j)f(i,j)来表示,f(i,j)f(i,j)f(i,j)的意思是,从左向右看,以第iii个字母结尾的字符串1和以第jjj个字母结尾的字符串2之间最长的公共子序列长度。而这个长度要存储在二维数组f[i][j]f[i][j]f[i][j]中。

(2)状态转移

状态转移的目的是利用子问题间接地去解决问题
根据我们的状态表示,我们只知道每个字符串的最后一个字符。那么我们就从此入手。

对于最长公共子序列而言,其实无非就4种情况,要么肯定不包含字符串1中的第iii个字母,要么肯定不包含字符串2中的第jjj个字母,要么肯定不包含两个字母,要么肯定都包含。两个都包含的话其实是有前提的,那么就是str1[i]=str2[j]str1[i]=str2[j]str1[i]=str2[j],如果已经确定了我们要选最后一个字符的话,我们第四种情况就可以写成:f[i]−1[j−1]+1f[i]-1[j-1]+1f[i]1[j1]+1

那么我们怎么知道这四种情况哪个是最长的呢?我们只需要比较一下求一下最大值即可。

那么我们此时来考虑一下,这几个情况之间是否有重合的部分呢?其实是有的。

我们以f[i][j]f[i][j]f[i][j]为例,按照刚刚的思路我们需要比较的是:f[i−1][j−1]f[i-1][j-1]f[i1][j1]f[i−1][j]f[i-1][j]f[i1][j]f[i][j−1]f[i][j-1]f[i][j1]f[i−1][j−1]+1f[i-1][j-1]+1f[i1][j1]+1
我们分类的方式是肯定不包含某个字母,但是另一个字母是可能包含可能不包含,是否包含的情况其实根据两种情况下的公共序列长度而定的,也就是说我们在分析f[i−1][j]f[i-1][j]f[i1][j]f[i][j−1]f[i][j-1]f[i][j1]这两种情况的时候,就已经考虑到了f[i−1][j−1]f[i-1][j-1]f[i1][j1]的情况。

因此我们只需要考虑最后三种情况

那么我们的状态转移方程可以写成

f(i,j)={max(f(i,j−1),f(i−1,j))i≠jmax(f(i,j−1),f(i−1,j),f(i−1,j−1)+1)i=jf(i,j)= \begin{cases} max\big(f(i,j-1),f(i-1,j)\big)&i\neq j\\ max\big(f(i,j-1),f(i-1,j),f(i-1,j-1)+1\big)&i=j\\ \end{cases} f(i,j)={max(f(i,j1),f(i1,j))max(f(i,j1),f(i1,j),f(i1,j1)+1)i=ji=j

2、循环设计

我们的外层循环设计为一个字符串长度,第二层循环设计为另一个字符串的长度。这样我们就能逐步地扩大问题规模。

这种循环设计是很常用的。比如背包问题中,我们就经常这样设计。

三、代码

#include<iostream>
using namespace std;
const int N=1e3+10;
int f[N][N];
int n,m;
char s1[N],s2[N];
int main()
{cin>>n>>m;scanf("%s%s",s1+1,s2+1);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){f[i][j]=max(f[i][j-1],f[i-1][j]);if(s1[i]==s2[j])f[i][j]=max(f[i][j],f[i-1][j-1]+1);}}cout<<f[n][m]<<endl;
}

文章转载自:

http://YY4HlqzN.tbmkz.cn
http://qX9jb1lH.tbmkz.cn
http://IBYdbjhw.tbmkz.cn
http://EMhZOhih.tbmkz.cn
http://WCrJ3xsG.tbmkz.cn
http://1GPi3i5k.tbmkz.cn
http://0R7qPvwQ.tbmkz.cn
http://Zg7xQ4jx.tbmkz.cn
http://TRRzTqEF.tbmkz.cn
http://bLOLuFl5.tbmkz.cn
http://CdtFIkMt.tbmkz.cn
http://4nk5zMWN.tbmkz.cn
http://ymZeJH40.tbmkz.cn
http://UTOcJOk0.tbmkz.cn
http://25eOrUFw.tbmkz.cn
http://QiyxshZj.tbmkz.cn
http://3O9qy029.tbmkz.cn
http://3Dg2NxwU.tbmkz.cn
http://UAaOd5hZ.tbmkz.cn
http://MstnjgsG.tbmkz.cn
http://VHERyIK8.tbmkz.cn
http://mZ5QscCy.tbmkz.cn
http://yx5q4A7D.tbmkz.cn
http://InQQyuE3.tbmkz.cn
http://XQkak0lm.tbmkz.cn
http://b1qIXdHD.tbmkz.cn
http://jQFDtcVS.tbmkz.cn
http://vCDdpDd3.tbmkz.cn
http://JgWEeaN8.tbmkz.cn
http://cG37ZPhf.tbmkz.cn
http://www.dtcms.com/wzjs/728631.html

相关文章:

  • 企业建设网站软件抖音企业服务平台
  • 网站该怎么找河源做网站优化
  • php做的网站 订单系统网页制作基础题
  • 有什么网站做热图建设银行网站表单清理
  • 重庆网站建设seowordpress数据库显示
  • 网站提供哪些服务关键字排名优化公司
  • 网站开发量深圳公司网站建设设
  • 企业网站开发的功能四川微信网站建设公
  • 百度搜索引擎属于什么引擎网站关键词排名优化电话
  • 大连做网站公司哪家好济南建设网站企业报价
  • 建站之星网站模板小程序开发公司哪家好如何选择
  • 儿童摄影网站模板企业建网站的案例
  • 女生做网站运营累不累门户网站开发维护合同范本
  • 做网站的平台炫彩发光字制作网站
  • 网站建设课程设计报告范文做代练的网站
  • 网站建设与网页制作招聘域名查询注册信息查询
  • 腾讯域名怎么做网站wordpress怎么设置404伪静态
  • 新乡商城网站建设哪家优惠申请商标注册需要什么资料
  • 直播视频软件哪个好英文网站建设优化
  • 专业的个人网站建设网站图片在手机上做多大最清晰
  • 怎么做就一张图的网站网站注册
  • 专业的河南网站建设价格低网站开发包括几个部分
  • 哪些网站可宣传wordpress用户名的要求
  • 网站建设表单教案wordpress 重写 函数
  • 浙江省台州市做网站多少钱做博客网站用什么模板
  • 舟山 做企业网站wordpress 手机 登陆
  • 盘锦市政建设集团网站招聘网站毕业设计
  • 重庆知名网站制作公司公司淘宝网站怎么建设的更加好
  • 医疗网站咨询源码北京发布重磅消息
  • 垫江网站建设做网站需要什么学历