自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (2)
  • 收藏
  • 关注

原创 BFS 最短路径证明及实现

BFS最短路径感觉是显而易见的,但证明却颇费工夫,以下证明大部分摘自CLRS,使用倒序形式进行证明比较好理解。首先需要证明一条引理,即BFS中所有点的d值按照入队列成升序排列,即d(s)  1. BFS得到的是一条路径,即从起始点s到任意一点v的路径d(v),因此它必定大于等于最短路径δ(s,v),即有d(v) >=δ(s,v) 2. 以下只需要证明d(v)>δ(s,v)情况不存在

2013-07-27 10:08:47 7167

原创 判断一个图是否为二分图且输出结点二分的两个部分(算法导论22.2-6)

这题实际上是判断图是否为二分图,可以假设此图为连通图(非连通图时对其各个连通分支作相同操作即可)。二分图的充要条件是“所有环路的长度均为偶数”,刚开始我也从这方面着手,努力证明如果此图有环路,则环路长度不可能为奇数,继而发现此路不通,而且如果为二分图还要输出结点的两个部分,这种方法比较困难,使用以下方法证明。对任意一个结点使用BFS,BFS树的根结点设置为红色,与根结点距离为奇数的点设置为

2013-07-19 18:09:49 2549

原创 两次BFS求树的直径(算法导论22.2-7)

以任意点w开始,先做一次BFS,找到最远的点v,然后再以此点v进行一次BFS,找到最远的点为u,u到v就是树的直径。 此问题的关键不是在编程,而是要证明,网上也找了很多资料,没有看到证明,以下是个人的证明方法。 首先要知道树是没有环路的连通图,任意两点都有一条通路,而且也只有一条通路。同时假设树的一条直径为u到v的路径,记为d(u,v)。分情况讨论:(1) 假设起始点w正好

2013-07-15 09:08:32 5894

原创 职业、人生的动态规划?

曾几何时,幻想过可以从事多个职业,可到如今单个职业也已经很不容易了。但人的天性如此,职业病就是其一,人就是喜欢从事各种活动 做专业运动的,身体运动过度导致生病;不运动的,身体很少锻炼导致生病; 老师由于过度站立导致下肢生病;坐办公室的由于久坐也会导致下肢生病;司机由于久坐低头导致颈椎生病;搬运工由于过度搬运导致腰部生病; 真是过犹不及啊,人身体的每个部位,即

2013-07-12 17:59:34 986

原创 互素数不能表出的最大数(源自动态规划题:麦香牛块)

原题如下:农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块。奶牛们正在想尽一切办法让这种可怕的设想泡汤。奶牛们进行斗争的策略之一是“劣质的包装”。“看”,奶牛们说,“如果你用只有一次能装3块、6块或10块的三种包装盒装麦香牛块,你就不可能满足想要一次只想买1、2、4、5、7、8、11、14或17块麦香牛块的顾客了。劣质的包装意味着劣质的产品。”你的任务是帮助

2013-07-12 17:21:05 2164

原创 n个点的简单无向图没有长度为3的环,求其最大的边数

原题描述:在一个未来的空中都市中,有很多个小岛(城区)。现在要求在这些岛之间架一些桥梁(桥是架在两个岛中间的)。要求:首先,如果A与B中间有桥,B与C之间有桥,则A与C之间就不能再架桥了,即对于城市中的任意三个岛,不能在其中两两都架上桥。在这样的前提下,要求架的桥数最多,并计算其中的一个可行方案。 此题在网上可以搜索到答案,桥数最多时为二分图。但没有给出有力的证明。以下简要证明之。

2013-07-04 16:25:14 3367

原创 动态规划之整齐打印

考虑在一个打印机上整齐地打印一段文章的问题。输入的正文是n个长度分别为L1、L2、……、Ln(以字符个数度量)的单词构成的序列。我们希望将这个段落在一些行上整齐地打印出来,每行至多M个字符。“整齐度”的标准如下:如果某一行包含从i到j的单词(i 乍一看以为是空格个数和,如此可以使用“贪心算法”求解,即从第一行开始尽可能多的放置单词,可以证明这个“贪心解”也是最优的,假设有一个最优解从某行开

2013-07-03 16:51:43 4315 2

原创 单调队列之烽火传递问题

烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上。一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情。在某两座城市之间有n个烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确的传递,在m个烽火台中至少要有一个发出信号。现输入n,m和每个烽火台发出的信号的代价,请计算总共最少需要话费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确的传递。 例如

2013-07-01 10:07:39 2441 2

算法实验代码(大部分是CLRS的习题和原题)

大部分是CLRS的习题和原题 还有部分是网友的习题

2013-07-04

二叉树遍历

详尽的树遍历文档,将树遍历一网打尽,值得参考

2013-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除