动态规划
文章平均质量分 72
阿童木1027
。。。
展开
-
最长公共子序列
最长公共子序列(longest common sequence)和最长公共子串(longest common substring)不是一回事儿。什么是子序列呢?即一个给定的序列的子序列,就是将给定序列中零个或多个元素去掉之后得到的结果。 我们可以知道递推公式为: 0; i=0 or j=0; c[i]原创 2017-10-10 21:10:12 · 329 阅读 · 0 评论 -
0-1背包问题
问题:给定一个容积为c的背包,去尝试装n个重量为wi、价值为vi的物体,求能装下的物体的最大价值。 分析:0-1背包只有两种选择,放与不放到背包里,采用二进制表示,1表示放入背包,0表示不放入背包,因此我们基于二进制进行暴力搜索。 #include #include #define n 5 int weight[n]={12,2,1,4,1}; int value[n]={4,2,1,1原创 2017-09-12 10:48:00 · 517 阅读 · 0 评论 -
矩阵连乘
问题:给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。 分析:由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次原创 2017-10-14 20:46:01 · 907 阅读 · 0 评论