10 2013 档案

摘要:前段时间看DP中的01背包问题,大部分内容都好理解,网上也有很多关于这个问题的博客,但自己提出的问题没有得到解决,只好苦思冥想,以求进一步理解。 首先是问题描述:给定n种物品和一背包,物品i的重量是wi,其价值是pi,背包的容量是M,问如何选择装入背包中的物品总价值最大? 这里有两种情况一种是将背包恰好装满,一种是不要求恰好装满。解决这样的问题的方式就是通过设置初始化来解决。 01背包详细内容不再唠叨了,大家看看http://www.cnblogs.com/lzh-cnblogs/p/3359881.html,现在主要就上述两种情况来说明。 当要求恰好装满时,初始化f[0,0]... 阅读全文
posted @ 2013-10-09 22:25 ps龙之吻 阅读(1123) 评论(0) 推荐(1) 编辑
摘要:首先是问题描述:给定n种物品和一背包,物品i的重量是wi,其价值是pi,背包的容量是M,问如何选择装入背包中的物品总价值最大?可以这样理解:背包的背负有上限,因此在这个上限内尽可能多的装东西,并且价值越多越好。在这里我之想讨论动态规划解决这个问题的详细过程。动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。因为背包的最终最大容量未知,所以,我们得从1到M一个一个的试,比如,刚开始任选N件物品中的一个,看对应的M的背包,能不能放进去,如果能放进去,并且还有多少空间,则,多出来的空间能放N-1物品中的最大价值,怎么能保证总选则是最大价值呢,看下表: 阅读全文
posted @ 2013-10-09 18:58 ps龙之吻 阅读(620) 评论(0) 推荐(0) 编辑
摘要:最近看深入了解计算机系统,在开始的时候有对hello.c程序的在计算机内部的执行分析过程,于是就有了前面转载关于gcc对hello.c逐步编译的过程的帖子。现在对其补充与进一步的深入分析与讨论。计算机系统层级可以由用户到底层硬件划为以下几层:1.高级语言级:也就是大家所熟悉的C,C++,JAVA等等。2.汇编语言级:对高级语言进行预处理,编译后生成汇编语言,程序员也可以直接编写。linux下可以gcc -E hello.c -o hello.i.进行预处理,然后进行通过gcc -s hello.i -o hello.s生成汇编语言的文件。3.操作系统级:由操作系统程序实现。这些操作系统由机.. 阅读全文
posted @ 2013-10-01 10:33 ps龙之吻 阅读(2373) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示