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