随笔分类 -  经典递归问题

摘要:限定条件: 如果放入该物品<剩余背包容量则回溯。 如果当前价值+剩余容量下剩余物品的最大价值<当前最大价值则回溯。(剩下在怎么放都不会比当前最大价值大,就没必要算了) 测试: 第一行分别输入物品数量n与背包容量c 用例: 10 30095 8975 5923 1973 4350 10022 726 阅读全文
posted @ 2018-11-04 19:37 来一点音乐 阅读(160) 评论(0) 推荐(0)
摘要:一、数字三角形 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; (图3.1-1)示出了一个数字三角形。 请编一个程序计算从 阅读全文
posted @ 2017-03-24 14:32 来一点音乐 阅读(424) 评论(0) 推荐(0)
摘要:n个对象的一个排列,就是把这 n 个不同的对象放在同一行上的一种安排。例如,对于三个对象 a,b,c,总共有6个排列: a b c a c b b a c b c a c a b c b an 个对象的排列个数就是 n!。 基于回溯的全排列 阅读全文
posted @ 2017-03-22 16:48 来一点音乐 阅读(207) 评论(0) 推荐(0)
摘要:在8×8的棋盘上,放置8个皇后(棋子),使两两之 间互不攻击。所谓互不攻击是说任何两个皇后都要 满足:(1)不在棋盘的同一行; (2)不在棋盘的同一列; (3)不在棋盘的同一对角线上。因此可以推论出,棋盘共有8行,故至多有8个皇后, 即每一行有且仅有一个皇后。这8个皇后中的每一个 应该摆放在哪一列上 阅读全文
posted @ 2017-03-22 16:06 来一点音乐 阅读(350) 评论(1) 推荐(1)
摘要:从楼上走到楼下共有h个台阶,每一步有三种走法: 走一个台阶; 走二个台阶; 走三个台阶。问可以走出多少种方案,希望用递归思想来编程。 阅读全文
posted @ 2017-03-22 15:41 来一点音乐 阅读(406) 评论(0) 推荐(0)
摘要:有五本书,它们的编号分别为1,2,3,4, 5,现准备分给 A, B, C, D, E五个人,每个 人的阅读兴趣用一个二维数组来加以描述: 希望编写一个程序,输出所有的分书方案, 让人人皆大欢喜。 阅读全文
posted @ 2017-03-22 15:17 来一点音乐 阅读(469) 评论(0) 推荐(0)
摘要:快速排序的基本思路:1、在数组a中,有一段待排序的数据,下标从l到r。2、取a[l]放在变量value中,通过由右、左两边对value的取值的比较,为value选择应该排定的位置。这时要将比value大的数放右边,比它小的数放左边。当value到达最终位置后(如下标m),由它划分了左右两个集合[l. 阅读全文
posted @ 2017-03-22 11:44 来一点音乐 阅读(281) 评论(0) 推荐(0)
摘要:一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,面积只容得下一只青蛙落脚,同样右岸也有一石柱R,面积也只容得下一只青蛙落脚。有一队青蛙从尺寸上一个比一个小。我们将青蛙从小到大,用1,2,…,n编号。规定初始时这队青蛙只能趴在左岸的石头L上,按编号一个落一个,小的落在大的上面。不允许大的在 阅读全文
posted @ 2017-03-22 10:45 来一点音乐 阅读(602) 评论(0) 推荐(0)
摘要:相传在古印度Bramah庙中,有位僧人整天把三根柱子上的金盘倒来倒去,原来他是想把64个一个比一个小的金盘从一根柱子上移到另一根柱子上去。 移动过程中遵守以下规则:每次只允许移动一只盘,且大盘不得落在小盘上 (简单吗?若每秒移动一只盘子,需5800亿年) 阅读全文
posted @ 2017-03-22 00:30 来一点音乐 阅读(275) 评论(0) 推荐(0)
摘要:根据给定的某个值,在一组数据(尤其是一个数组)当中,确定有没有出现相同取值的数据元素。 阅读全文
posted @ 2017-03-21 22:36 来一点音乐 阅读(201) 评论(0) 推荐(0)
摘要:给定一个整形数组a,找出其中的最大值。 阅读全文
posted @ 2017-03-21 22:34 来一点音乐 阅读(116) 评论(0) 推荐(0)