摘要: 一个问题可以用动态规划法求解的先决条件: 1、最有子结构性质:当问题的最优解包含了其子问题的最优解时,成该问题具有最有子结构性质。 2、重叠子问题:每次产生的子问题并不总是新问题,有些子问题被反复计算多次。 满足了以上两个条件的问题可以考虑用动态规划法求解,他是一种自底向上的递归算法。 问题描述: 阅读全文
posted @ 2017-04-08 22:25 lineaar 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 问题: 有一个需要使用每个资源的n个活动组成的集合S= {a1,a2,···,an },资源每次只能由一个活动使用。每个活动a都有一个开始时间和结束时间,且 0<= s < f 。一旦被选择后,活动a就占据半开时间区间[s,f]。如果[s,f]和[s,f]互不重叠,则称两个活动是兼容的。该问题就是要 阅读全文
posted @ 2017-04-07 21:41 lineaar 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 对于比较稠密的图,通常采用邻接矩阵来表示,如下左图所示,无权的路径通常用1表示两点有连接,0表示没有连接,若是加权图,则把1改成权重就好,如下右图。 邻接表结构用来表示稀疏的图,图的拓扑排序是指按每一个顶点的入度来对顶点进行排序,无权最短路径指的是所有路径的权重都是1,求某一点到另外一点的最短路径 阅读全文
posted @ 2017-04-07 17:12 lineaar 阅读(2281) 评论(0) 推荐(0) 编辑
摘要: // erchatoshu.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include using namespace std; //二叉树节点结构//////////////////////// typedef struct TreeNode *Position; typedef struct TreeNode *SearchT... 阅读全文
posted @ 2017-04-06 22:40 lineaar 阅读(2604) 评论(0) 推荐(0) 编辑
摘要: 给定一副彩色图像,它由一个mxn的像素数组A[1..m,1..n]构成,每个像素是一个红绿蓝(RGB)亮度的三元组。假定我们希望轻度压缩这幅图像。具体地,我们希望从每一行中删除一个像素,使得图像变窄一个像素。但为了避免影响视觉效果,我们要求相邻两行中删除的像素必须位于同一列或相邻列。也就是说,删除的 阅读全文
posted @ 2017-04-05 22:58 lineaar 阅读(679) 评论(0) 推荐(0) 编辑
摘要: Stewart教授是一家公司总裁的顾问,这家公司计划一个公司聚会。这个公司有一个层次式的结构;也就是说,管理关系形成一棵以总裁为根的树。人事部给每个雇员以喜欢聚会的程度来排名,这是个实数。为了使每个参加者都喜欢这个聚会,总裁不希望一个雇员和他(她)的直接上司同时参加。 Stewart教授面对一棵描述 阅读全文
posted @ 2017-04-01 23:41 lineaar 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 本练习主要做了几个工作: 1.给定一个数组来初始化二叉堆,第一种方法是通过不断插入,时间复杂度是O(nlgn),第二种方法是先把数组填入二叉堆,再从下标为H->SIZE/2的节点开始下滤,这是因为只有下标小于为H->SIZE/2才有孩子,从而可以用线性时间完成二叉堆的初始化。 2.二叉堆的下滤和上滤 阅读全文
posted @ 2017-04-01 20:42 lineaar 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 编辑距离问题: 编辑距离,又称Levenshtein距离,是一种字符串之间相似度计算的方法,指两个字符串之间,由一个转换成另一个所需的最少编辑次数。有效的编辑操作为单个字符的替换、插入和删除。对给定两个字符串S、T,将S转换成T所需要的删除,插入,替换操作的数量就叫做S到T的编辑路径。而最短的编辑路 阅读全文
posted @ 2017-03-31 20:36 lineaar 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 如上图所示为二项队列,不是一棵树而是一片森林,其合并操作有点像二进制加法,当两个二进制相加的某位都有1时,则当进位为0时,此位相加后的结果也为0,删除最小值操作则先找出最小的树根,把该树的树根去掉之后形成许多子树,用这些子树构成一个新的二项队列,再去跟原来剩下的二项式队列相加即可,删除时主要考虑的是 阅读全文
posted @ 2017-03-31 16:21 lineaar 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 问题: 考虑整齐打印问题,即在打印机上用等宽字符打印一段文本。输入文本为n个单词的序列,单词长度分别为l1,l2,……,ln个字符。要求将此段文本整齐打印在若干行上,每行最多M个字符。若每行包含第i到底j(i<=j)个单词,且单词间隔为一个空格符,则行尾的额外空格符数量为M-j+i-(li+……+l 阅读全文
posted @ 2017-03-30 23:25 lineaar 阅读(860) 评论(0) 推荐(0) 编辑