![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归分治
文章平均质量分 72
阿童木1027
。。。
展开
-
整数划分问题
问题:将正整数 n 划分为一系列正整数的和:n=n1+n2+.....+nk正整数的这种表示称为正整数 n 的划分。不同划分的个数称为正整数 n 的划分数,记为 p(n)原创 2017-09-13 17:33:43 · 450 阅读 · 0 评论 -
最长公共子序列
最长公共子序列(longest common sequence)和最长公共子串(longest common substring)不是一回事儿。什么是子序列呢?即一个给定的序列的子序列,就是将给定序列中零个或多个元素去掉之后得到的结果。我们可以知道递推公式为: 0; i=0 or j=0;c[i]原创 2017-10-10 21:10:12 · 315 阅读 · 0 评论 -
合并排序
合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。#include#define m 7int a[m]={4,5,2,1,7,6,3};void mergesort(int a[],int left,int right){ int mid; int b[m]; int i,j,k; if(left==right)原创 2017-10-10 21:34:42 · 324 阅读 · 0 评论 -
0-1背包问题
问题:给定一个容积为c的背包,去尝试装n个重量为wi、价值为vi的物体,求能装下的物体的最大价值。 分析:0-1背包只有两种选择,放与不放到背包里,采用二进制表示,1表示放入背包,0表示不放入背包,因此我们基于二进制进行暴力搜索。#include#include#define n 5int weight[n]={12,2,1,4,1};int value[n]={4,2,1,1原创 2017-09-12 10:48:00 · 501 阅读 · 0 评论 -
矩阵连乘
问题:给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。分析:由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次原创 2017-10-14 20:46:01 · 891 阅读 · 0 评论