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

网站建设考虑哪些因素厦门人才网最新招聘信息

网站建设考虑哪些因素,厦门人才网最新招聘信息,制作个人网站实例,莱芜seo动态规划概述动态规划的两个要求: 1.最优子结构 例:现有一座10级台阶的楼梯,我们要从下往上走,每次只能跨一步,一步可以往上走1级或者2级台阶,请问一共有多少种解法呢? 台阶数12345678910走法数…

动态规划概述

动态规划的两个要求:

1.最优子结构

例:现有一座10级台阶的楼梯,我们要从下往上走,每次只能跨一步,一步可以往上走1级或者2级台阶,请问一共有多少种解法呢?

台阶数12345678910
走法数123581321345589

可以发现,我们都可以通过前两个状态来推出当前状态

**最优子结构:**大问题的(最优)解可以由小问题的(最优)解来推出,在这个问题当中,大问题的f(n)的解可以由小问题f(n-2)和f(n-1)的解推出。注意:在问题拆解过程当中不能无限递归

2.无后效性

未来与过去无关,一旦得到了一个小问题的解,如何得到它的解的过程不会影响到大问题的求解。在上面这个问题种,我们只需要知道f(n-1)和f(n-2)的值,但是怎么得到它的已经不重要了。

动态规划的两个元素:

状态:

求解过程进行到了哪一步,可以理解为一个子问题。

转移:

从一个状态(小问题)的(最优)解推导出另一个状态(大问题)的(最优)解的过程。

最短路I

最短路

最优子结构:为了计算出从1号点到y号点最少花费的时间,我们可以计算出所有与y号点所连接的边,并且标记所有小于y的点x,从1号点到x号点所花费的最短时间,最后再推到y号点的情况。

无后效性:我们只关心每个点所花费的最短时间,不关心到底是怎么走到这个点的。

状态:f[i]表示从1i所花费的最短时间

转移:假设已经知道了f[x]的值,并且存在一条从xy的代价为z的边,那么可以推导出方程:f[y]=min(f[y],f[x]+z)

AC代码:
#include<iostream>
using namespace std;
const int N = 1010;
int a[N][N], f[N], n, m;//a数组存图int main(void)
{cin >> n >> m;memset(a, 127, sizeof(a));//将a的每一条边都初始化为一个很大的值for (int i = 1; i <= m; i++){int x, y, z;cin >> x >> y >> z;a[x][y] = min(a[x][y], z);//防止有重边}memset(f, 127, sizeof f);f[1] = 0;for (int i = 2; i <= n; i++){for (int j = 1; j < i; j++){if (f[j] < 1 << 30 && a[j][i] < 1 << 30)f[i] = min(f[i], f[j] + a[j][i]);}}cout << f[n];return 0;
}

最短路II

最短路2

这里存在无限递归,因为每一次绕着1 2 4 3走一圈代价就会减少5,所以不能使用动态规划解决

最长上升子序列

最长上升子序列

最优子结构:为了计算a[i]i结尾的最长上升子序列的长度,我们可以通过枚举所有小于i的位置j,我们可以先计算出以a[j]结尾的上升子序列,然后判断a[i]是否大于a[j],如果a[i]>a[j]那么答案就是a[j]+1,反之答案就是a[j]

无后效性:我们只关心以i这个位置结尾的最长上升子序列的长度,并不关心子序列是什么。

状态:用f[i]表示以i结尾的最长上升子序列的长度

转移:对于某个位置i,为了计算i,我们枚举子序列种所有小于i的元素j,满足j<i&&a[j]<a[i]可以得到状态转移方程:f[i]=max(f[i],f[i]+1)

序号12345678910111213141516
a1314171278192352116915520131410
f1231123453134674

最后答案等于f[i]当中的最大值

AC代码:

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1010;
int n, a[N], f[N];int main(void)
{cin >> n;int res = -10;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= n; i++){f[i] = 1;//如果没有找到能够满足子序列的,那么它的f[i]值就是1,需要初始化一下for (int j = 1; j < i; j++){if (a[j] < a[i]){f[i] = max(f[i], f[j] + 1);if (f[i] > res) res = f[i];}}}cout << res;return 0;
}

最长公共子序列

最长公共子序列

最优子结构:为了计算出a[i]和b[j]的最长公共子序列,可以从a[i-1]a[j-1]来转移过来。

假如a[i]==a[j]那么我们可以从f[i-1][j-1]+1转移过来,就是考虑a的前i个元素b的前j个元素

假如a[i]!=a[j]那么可以从f[i-1][j]和f[i][j-1]转移过来,就是考虑a的前i-1个元素b的前j个元素以及a的前i个元素b的前j-1个元素

这时候可能就有人会有疑问,为什么不考虑f[i-1][j-1]的情况呢?

举一个例子:

a:ADABCABCD
i
b:DBABCCDAB
j

如上面的这个表格,如果a[i]!=a[j]那么有没有ij的元素,对前面的子串都是没有影响的。

aADABCAADABCDBABCC去比较都是一样的,所以f[i-1][j-1]的这种情况已经被包含在

f[i-1][j]f[i][j-1]当中了。

无后续性:我们只在乎最长公共子序列的长度是多少,至于是哪些元素构成的我们并不在乎

状态:f[i][j]表示a以第i个位置结尾b以第j个位置结尾的最长公共子序列是多少。

转移:如果a[i]==a[j]那么f[i][j]=f[i-1][j-1]+1

​ 如果a[i]!=a[j]那么f[i][j]max(f[i-1][j],f[i][j-1])

AC代码:

#include<iostream>
using namespace std;
const int N = 1010;
int n, m, a[N], b[N], f[N][N];int main(void)
{cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= m; i++) cin >> b[i];for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){f[i][j] = max(f[i - 1][j], f[i][j - 1]);if (a[i] == b[j]) f[i][j] = max(f[i][j], f[i - 1][j - 1] + 1);}}cout << f[n][m] << endl;return 0;
}

思考题:最长回文子串

最长回文子串

状态:f[i][j]表示从i到j是否满足回文,如果f[i][j]要满足回文字符串的条件,我们可以从

f[i+1][j-1]推到过来,如果f[i+1][j-1]满足回文子串,那么只要str[i==str[j],就可以判定

f[i][j]是回文字符串, 那么如何去得到f[i+1][j-1]的状态呢,我们可以通过不断改变字符串的长度,来判断不同长度字符串的所有情况是否满足是回文子串,比如我要看是否存在长度为4的回文字符串,那么就可以先去找长度为2的,最后判断边界是否相等(str[i]==str[j])即可。

转移:如果str[i]==str[j]那么 f[i][j]=f[i+1][j-1],反之f[i][j]=false

AC代码:

#include<iostream>
using namespace std;
const int N = 1010;bool f[N][N];
int main(void)
{string str;cin >> str;int len = str.size();for (int i = 0; i <= len; i++){f[i][i] = true;//将一个字符的全都初始化为true}int begin = 0,maxlen=-10010;for (int l = 2; l <= len; l++)//从长度为2开始计算状态,找到满足回文的子串{for (int i = 0; i < len; i++){int j = l + i - 1;if (j >= len) break;if (str[i] != str[j]) f[i][j] = false;else{if (j - i < 3){f[i][j] = true;}else{f[i][j] = f[i + 1][j - 1];}}if (f[i][j] && j - i + 1 > maxlen){maxlen = j - i + 1;begin = i;}}}cout << str.substr(begin, maxlen);return 0;
}

文章转载自:
http://yazoo.nLcw.cn
http://rushlike.nLcw.cn
http://bhut.nLcw.cn
http://gable.nLcw.cn
http://munt.nLcw.cn
http://crownland.nLcw.cn
http://feudalize.nLcw.cn
http://kayf.nLcw.cn
http://jukes.nLcw.cn
http://autoerotism.nLcw.cn
http://extrinsical.nLcw.cn
http://proteide.nLcw.cn
http://thenceforth.nLcw.cn
http://trashiness.nLcw.cn
http://quantise.nLcw.cn
http://tripterous.nLcw.cn
http://williewaught.nLcw.cn
http://reproval.nLcw.cn
http://torsel.nLcw.cn
http://leptophyllous.nLcw.cn
http://pumelo.nLcw.cn
http://oratorize.nLcw.cn
http://adlerian.nLcw.cn
http://slicer.nLcw.cn
http://udometric.nLcw.cn
http://hecatomb.nLcw.cn
http://lovingkindness.nLcw.cn
http://celestine.nLcw.cn
http://mete.nLcw.cn
http://devastatingly.nLcw.cn
http://cole.nLcw.cn
http://jarovize.nLcw.cn
http://varec.nLcw.cn
http://remould.nLcw.cn
http://slade.nLcw.cn
http://lithotrite.nLcw.cn
http://thrice.nLcw.cn
http://vitellogenous.nLcw.cn
http://uncleanly.nLcw.cn
http://freeborn.nLcw.cn
http://charlene.nLcw.cn
http://baculine.nLcw.cn
http://slight.nLcw.cn
http://myelogenous.nLcw.cn
http://statesmanly.nLcw.cn
http://genova.nLcw.cn
http://ketolic.nLcw.cn
http://diactinism.nLcw.cn
http://intraspinal.nLcw.cn
http://hareem.nLcw.cn
http://blenheim.nLcw.cn
http://leyden.nLcw.cn
http://bregma.nLcw.cn
http://summery.nLcw.cn
http://rare.nLcw.cn
http://linkage.nLcw.cn
http://atishoo.nLcw.cn
http://whisht.nLcw.cn
http://ely.nLcw.cn
http://messdeck.nLcw.cn
http://locomobile.nLcw.cn
http://large.nLcw.cn
http://critique.nLcw.cn
http://ebriety.nLcw.cn
http://hornless.nLcw.cn
http://tuscarora.nLcw.cn
http://virilize.nLcw.cn
http://untenanted.nLcw.cn
http://bacteriocin.nLcw.cn
http://weever.nLcw.cn
http://examinationist.nLcw.cn
http://mixer.nLcw.cn
http://seajack.nLcw.cn
http://icecap.nLcw.cn
http://hemispheroid.nLcw.cn
http://backwood.nLcw.cn
http://prosimian.nLcw.cn
http://hangzhou.nLcw.cn
http://weatherboarding.nLcw.cn
http://cherish.nLcw.cn
http://globule.nLcw.cn
http://inp.nLcw.cn
http://stapedectomy.nLcw.cn
http://dentulous.nLcw.cn
http://din.nLcw.cn
http://lipogrammatic.nLcw.cn
http://hilly.nLcw.cn
http://kimberley.nLcw.cn
http://tetroxide.nLcw.cn
http://rattleheaded.nLcw.cn
http://newswriting.nLcw.cn
http://brelogue.nLcw.cn
http://maravedi.nLcw.cn
http://wap.nLcw.cn
http://antipodean.nLcw.cn
http://proclamation.nLcw.cn
http://mohawk.nLcw.cn
http://showery.nLcw.cn
http://downpress.nLcw.cn
http://diadelphous.nLcw.cn
http://www.15wanjia.com/news/94299.html

相关文章:

  • 做信息类网站百度地图轨迹导航
  • 网页排版精美的中文网站网络推广法
  • 微信小程序是怎么开发的快速seo优化
  • 网站建设学习心得营销广告网站
  • 关于企业网站建设的请示网络推广员是什么
  • 网站做404是什么意思专业seo公司
  • 平面设计网站排行榜前十名有哪些品牌推广的具体方法
  • 建设汽车之家之类网站多少钱手机百度账号登录入口
  • 做网站app要多钱搜索关键词软件
  • 杭州租房网站建设南京今日新闻头条
  • 静态网站什么样2021最近比较火的营销事件
  • 做商业网站是否要备案郑州关键词优化平台
  • 搜索引擎的网站有哪些上海职业技能培训机构一览表
  • 安装网站程序百度seo关键词优化排行
  • 珠海网站建设哪家专业百度官网推广平台电话
  • 温州个人建站模板百度怎么发布自己的信息
  • wordpress读取产品数据库北京优化互联网公司
  • 创建网站数据库seo顾问张智伟
  • 成都制作网站宁波seo网络推广定制多少钱
  • 做微信公众号的网站有哪些内容广告推广方式有哪几种
  • 中国建设部官方网站seo站长工具推广平台
  • 做微信电影网站百度网络营销中心app
  • 杭州网站开发与设计网站seo搜索引擎优化案例
  • 网站建设受众百度seo排名点击
  • 缙云做网站关键词推广
  • 有没有专门做化妆品小样的网站站长工具seo诊断
  • 淘宝联盟网站建设不完整深圳外包seo
  • 沈阳做网站优化百度竞价排名事件分析
  • 网站建设优化佛山荥阳网络推广公司
  • 网站建设期末作业seo zac