
回溯法
文章平均质量分 54
dijk
这个作者很懒,什么都没留下…
展开
-
算法设计与分析: 5-1 子集和问题
5-1 子集和问题问题描述子集和问题的一个实例为⟨S,t⟩〈S,t〉〈S,t〉。其中,S={x1,x2,...,xn}S={x1,x2,...,xn}S=\{ x_1 , x_2 ,..., x_n \}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在 S 的一个子集 S1,使得 ∑x∈S1x=c∑x∈S1x=c\sum\limits_{x\in S1}x=c。 试设计一个...原创 2018-07-18 08:29:32 · 2113 阅读 · 0 评论 -
算法设计与分析: 5-21 2X2X2魔方问题
5-21 2X2X2魔方问题问题描述2×2×22×2×22\times2\times2 魔方的构造如图所示。图中英文字母 U,L,F,R,B,D 分别表示魔方的 6 个 面中的上面,左面,前面,右面,后面,底面。魔方的每个面都可以绕其中轴旋转。给定魔 方的初始状态,可以经过若干次旋转将魔方变换成每个面都只有一种颜色的状态。绕中轴将 一个面旋转 90 度算作一次旋转。试设计一个算法计算出...原创 2018-07-20 23:59:57 · 874 阅读 · 0 评论 -
算法设计与分析: 5-22 魔方(Rubik's Cube)问题
5-22 魔方(Rubik’s Cube)问题问题描述3×3×33×3×33\times3\times3 魔方的构造如图所示。图中英文字母 U,L,F,R,B,D 分别表示魔方的 6 个面中的上面,左面,前面,右面,后面,底面。魔方的每个面都可以绕其中轴旋转。给定魔 方的初始状态,可以经过若干次旋转将魔方变换成每个面都只有一种颜色的状态。绕中轴将 一个面旋转 90 度算作一次旋转。试设...原创 2018-07-21 02:26:59 · 2235 阅读 · 0 评论 -
算法设计与分析: 5-23 算24点问题
5-23 算24点问题问题描述给定 4 个正整数,用算术运算符“+”,“-”,“*”,“/”将这 4 个正整数连接起来,使最终的得数恰为 24。对于给定的 4 个正整数,给出计算 24 的算术表达式。数据输入: 第一行有 4 个正整数。Javapackage Chapter5HuiSuFa;import java.util.HashSet;import ja...原创 2018-07-21 12:11:02 · 1385 阅读 · 0 评论 -
算法设计与分析: 5-24 算m点问题
5-24 算m点问题问题描述给定 k 个正整数,用算术运算符“+”,“-”,“*”,“/”将这 k 个正整数连接起来,使最终的得数恰为 m。对于给定的 k 个正整数,给出计算 m 的算术表达式。数据输入: 第一行有 2 个正整数 k 和 m,表示给定 k 个正整数,且最终的得数恰为 m。接下来的 1 行中,有 k 个正整数。Javapackage Chapte...原创 2018-07-21 13:05:03 · 3766 阅读 · 0 评论 -
算法设计与分析: 5-25 双轨车皮编序问题
5-25 双轨车皮编序问题问题描述在一个列车调度站中,2 条轨道连接到 2 条侧轨处,形成 2 个铁路转轨栈。其中左边轨道为车皮入口,编号为 A;右边轨道为出口,编号为 D,2 个铁路转轨栈分别编号为 C 和 D, 如下图所示。编号为 a,b,…,的 n 个车皮依序停放在车皮入口处。调度室要安排各车皮 进出栈次序,使得在出口处各车皮按照预先指定的顺序依次出站。车皮移动时只能按照从左...原创 2018-07-21 21:11:10 · 859 阅读 · 0 评论 -
算法设计与分析: 5-26 多轨车皮编序问题
5-26 多轨车皮编序问题问题描述在一个列车调度站中,k 条轨道连接到 k 条侧轨处,形成 k 个铁路转轨栈,从左到右依次编号为 1,2,…,k。其中左边轨道为车皮入口,编号为 0;右边轨道为出口,编号为 k+1。 当 k=2 时,如下图所示。编号为 1,2,…,n 的 n 个车皮散乱地停放在编号为 0,1,2,…, k 的栈轨处。调度室要安排各车皮进出栈次序,使得在出口处各车皮按照其...原创 2018-07-21 22:24:37 · 517 阅读 · 0 评论 -
算法设计与分析: 5-27 部落卫队问题
5-27 部落卫队问题问题描述原始部落 byteland 中的居民们为了争夺有限的资源,经常发生冲突。几乎每个居民都有他的仇敌。部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入 伍,并保证队伍中任何 2 个人都不是仇敌。给定 byteland 部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案。数据输入: 第 1 行有 2 个正整数 n 和 m,表示...原创 2018-07-21 23:15:21 · 2063 阅读 · 0 评论 -
算法设计与分析: 5-28 虫蚀算式问题
5-28 虫蚀算式问题问题描述虫蚀算式是指古书中算式的一部分被虫蛀了。虫蚀算式问题是根据虫蚀算式剩下的数字,逻辑推断被虫蛀了的数字。例如, 43?98650?45+8468?66334444550697843?98650?45+8468?663344445506978\dfrac{43?98650?45\\ + 8468?6633} {4...原创 2018-07-22 01:19:59 · 1996 阅读 · 0 评论 -
算法设计与分析: 5-29 完备环序列问题
5-29 完备环序列问题问题描述长度为 n 的环序列定义为含有 n 个互不相同的元素且首尾相接的环状序列。如果环序列中连续若干个数的和能形成一个连续的整数序列 1,2,…,m,则称该环序列为一个完备的 (n,m)序列。对于给定的 n,计算存在完备(n,m)序列的 m 的最大值。同时,计算出有多少个 不同的完备(n,m)序列。对于给定的正整数 n,计算存在完备(n,m)序列的 m 的...原创 2018-07-22 09:41:39 · 389 阅读 · 0 评论 -
算法设计与分析: 5-30 离散0-1串问题
离散0-1串问题问题描述(n,k)01 串定义为:长度为 n 的 01 串,其中不含 k 个连续的相同子串。对于给定的正整数 n 和 k,计算(n,k)01 串的个数。数据输入: 第一行有 2 个正整数 n 和 k,1≤k,n≤40。Javapackage Chapter5HuiSuFa;import java.util.Scanner;publi...原创 2018-07-22 09:59:19 · 560 阅读 · 0 评论 -
算法设计与分析: 5-31 喷漆机器人问题
5-31 喷漆机器人问题问题描述F 大学开发出一种喷漆机器人 Rob,能用指定颜色给一块矩形材料喷漆。Rob 每次拿起一种颜色的喷枪,为指定颜色的小矩形区域喷漆。喷漆工艺要求,一个小矩形区域只能在所 有紧靠它上方的矩形区域都喷过漆后,才能开始喷漆,且小矩形区域开始喷漆后必须一次性 喷完,不能只喷一部分。为 Rob 编写一个自动喷漆程序,使 Rob 拿起喷枪的次数最少。对于给定的...原创 2018-07-22 12:25:34 · 1488 阅读 · 1 评论 -
算法设计与分析: 5-32 子集树问题
5-32 子集树问题问题描述试设计一个用回溯法搜索子集空间树的函数。该函数的参数包括结点可行性判定函数和上界函数等必要的函数,并将此函数用于解装载问题。 装载问题描述如下:有一批共 n 个集装箱要装上艘载重量为 c 的轮船,其中集装箱 i 的重量为 wi 。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船。第一行有 2 个正整数 n...原创 2018-07-22 14:00:01 · 1501 阅读 · 0 评论 -
算法设计与分析: 5-33 0-1背包问题
5-33 0-1背包问题问题描述试设计一个用回溯法搜索子集空间树的函数。该函数的参数包括结点可行性判定函数和上界函数等必要的函数,并将此函数用于解 0-1 背包问题。 0-1 背包问题描述如下:给定 n 种物品和一个背包。物品 i 的重量是 wiwiw_i ,其价值为vivi v_i ,背包的容量为 C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 在选择装入背包的...原创 2018-07-22 15:10:13 · 623 阅读 · 0 评论 -
算法设计与分析: 5-34 排列树问题
5-34 排列树问题问题描述试设计一个用回溯法搜索排列空间树的函数。该函数的参数包括结点可行性判定函数和上界函数等必要的函数,并将此函数用于解圆排列问题。 圆排列问题描述如下:给定 n 个大小不等的圆 c1,c2,...,cnc1,c2,...,cnc_1 , c_2 , ... , c_n ,现要将这 n 个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从 n 个...原创 2018-07-22 15:53:52 · 1248 阅读 · 0 评论 -
算法设计与分析: 5-35 一般解空间搜索问题
5-35 一般解空间搜索问题问题描述试设计一个用回溯法搜索一般解空间的函数。该函数的参数包括:生成解空间中下一扩展结点的函数、结点可行性判定函数和上界函数等必要的函数,并将此函数用于解图的 m 着色问题。 图的 m 着色问题描述如下:给定无向连通图 G 和 m 种不同的颜色。用这些颜色为图 G 的各顶点着色,每个顶点着一种颜色。如果有一种着色法使 G 中每条边的 2 个顶点着不同颜 ...原创 2018-07-22 16:19:00 · 1746 阅读 · 0 评论 -
算法设计与分析: 5-36 最短加法链问题
5-36 最短加法链问题问题描述最优求幂问题:给定一个正整数n和一个实数x,如何用最少的乘法次数计算出xnxnx^n 。 例如,可以用 6 次乘法逐步计算 x23x23x^{23} 如下: x,x2,x3,x5,x10,x20,x23x,x2,x3,x5,x10,x20,x23x , x^2 , x^3 , x^5 , x^{10} , x^{20} , x^{23} 。可以证明 计算...原创 2018-07-22 17:42:18 · 5367 阅读 · 0 评论 -
算法设计与分析: 5-20 世界名画陈列馆问题(不重复监视)
5-20 世界名画陈列馆问题(不重复监视)问题描述世界名画陈列馆由 m×nm×nm\times n 个排列成矩形阵列的陈列室组成。为了防止名画被盗,需要在陈列室中设置警卫机器人哨位。每个警卫机器人除了监视它所在的陈列室外,还可以监视与 它所在的陈列室相邻的上、下、左、右 4 个陈列室。试设计一个安排警卫机器人哨位的算法, 使得名画陈列馆中每一个陈列室都在警卫机器人的监视之下,并且要求...原创 2018-07-20 18:21:10 · 3648 阅读 · 1 评论 -
算法设计与分析: 5-19 世界名画陈列馆问题
5-19 世界名画陈列馆问题问题描述世界名画陈列馆由 m×nm×n m \times n 个排列成矩形阵列的陈列室组成。为了防止名画被盗,需要在陈列室中设置警卫机器人哨位。每个警卫机器人除了监视它所在的陈列室外,还可以监视与 它所在的陈列室相邻的上、下、左、右 4 个陈列室。试设计一个安排警卫机器人哨位的算法, 使得名画陈列馆中每一个陈列室都在警卫机器人的监视之下,且所用的警卫机器人数...原创 2018-07-20 16:41:09 · 3451 阅读 · 0 评论 -
算法设计与分析: 5-18 无优先级运算问题
5-18 无优先级运算问题问题描述给定 n 个正整数和 4 个运算符+、-、*、/,且运算符无优先级,如 2+3*5=25。对于任意给定的整数 m,试设计一个算法,用以上给出的 n 个数和 4 个运算符,产生整数 m, 且用的运算次数最少。给出的 n 个数中每个数最多只能用 1 次,但每种运算符可以任意使用。对于给定的 n 个正整数,设计一个算法,用最少的无优先级运算次数产生整数 ...原创 2018-07-20 11:42:50 · 5974 阅读 · 0 评论 -
算法设计与分析: 5-2 最小长度电路板排列问题
5-2 最小长度电路板排列问题问题描述最小长度电路板排列问题是大规模电子系统设计中提出的实际问题。该问题的提法是,将 n 块电路板以最佳排列方案插入带有 n 个插槽的机箱中。n 块电路板的不同的排列方式对 应于不同的电路板插入方案。 设B={1,2,...,n}B={1,2,...,n}B=\{1,2,...,n\}是n块电路板的集合。集合L={N1,N2,...,Nm}L={N1,...原创 2018-07-18 09:17:41 · 3282 阅读 · 0 评论 -
算法设计与分析: 5-3 最小重量机器设计问题
5-3 最小重量机器设计问题问题描述设某一机器由 n 个部件组成,每一种部件都可以从 m 个不同的供应商处购得。设 wijwijw_{ij} 是从供应商 j 处购得的部件 i 的重量,cijcij c_{ij} 是相应的价格。 试设计一个算法,给出总价格不超过 c 的最小重量机器设计。对于给定的机器部件重量和机器部件价格,编程计算总价格不超过 d 的最小重量机器设计。第一行有...原创 2018-07-18 10:05:53 · 3012 阅读 · 0 评论 -
算法设计与分析: 5-4 运动员最佳配对问题
5-4 运动员最佳配对问题问题描述羽毛球队有男女运动员各 n 人。给定 2 个 n×n 矩阵 P 和 Q。P[i][j]是男运动员 i 和女运动员 j 配对组成混合双打的男运动员竞赛优势;Q[i][j]是女运动员 i 和男运动员 j 配合的女运 动员竞赛优势。由于技术配合和心理状态等各种因素影响,P[i][j]不一定等于 Q[j][i]。男运 动员 i 和女运动员 j 配对组成混合双打...原创 2018-07-18 10:36:16 · 2989 阅读 · 1 评论 -
算法设计与分析: 5-5 无分隔符字典问题
5-5 无分隔符字典问题问题描述设∑=(α1,α2,...,αn)∑=(α1,α2,...,αn)\sum=(\alpha_1,\alpha_2,...,\alpha_n)是 n 个互不相同的符号组成的符号集。 Lk={β1β2...βk|βi∈∑,1≤i≤k}Lk={β1β2...βk|βi∈∑,1≤i≤k}L_k=\{\beta_1\beta_2...\beta_k|\beta_...原创 2018-07-18 12:56:39 · 2486 阅读 · 2 评论 -
算法设计与分析: 5-6 无和集问题
5-6 无和集问题问题描述设 S 是正整数集合。 S 是一个无和集,当且仅当 x,y∈Sx,y∈Sx, y\in S 蕴含x+y∉Sx+y∉S x + y \notin S 。 对于任意正整数k,如果可将{1,2,...,k}{1,2,...,k}\{1,2,...,k\}划分为n个无和子集S1,S2,...,SnS1,S2,...,SnS_1,S_2,...,S_n ,称正整数 k...原创 2018-07-18 17:12:36 · 3900 阅读 · 1 评论 -
算法设计与分析: 5-7 n色方柱问题
5-7 n色方柱问题问题描述设有 n 个立方体,每个立方体的每一面用红、黄、蓝、绿等 n 种颜色之一染色。要把这n 个立方体叠成一个方形柱体,使得柱体的 4 个侧面的每一侧均有 n 种不同的颜色。试设计一个回溯算法,计算出 n 个立方体的一种满足要求的叠置方案。对于给定的 n 个立方体以及每个立方体各面的颜色,计算出 n 个立方体的一种叠置方案,使得柱体的 4 个侧面的每一侧均有 ...原创 2018-07-18 19:12:51 · 5715 阅读 · 2 评论 -
算法设计与分析: 5-8 整数变换问题
5-8 整数变换问题问题描述整数变换问题。关于整数 i 的变换 f 和 g 定义如下: f(i)=3if(i)=3if(i)=3i;g(i)=⌊i/2⌋g(i)=⌊i/2⌋g(i)=\lfloor i/2\rfloor。 试设计一个算法,对于给定的 2 个整数 n 和 m,用最少的 f 和 g 变换次数将 n 变换为 m。 例如,可以将整数 15 用 4 次变换将它变换为整数 4...原创 2018-07-18 20:41:01 · 1590 阅读 · 0 评论 -
算法设计与分析: 5-9 拉丁矩阵问题
5-9 拉丁矩阵问题问题描述现有 n 种不同形状的宝石,每种宝石有足够多颗。欲将这些宝石排列成 m 行 n 列的一个矩阵,m≤n,使矩阵中每一行和每一列的宝石都没有相同形状。试设计一个算法,计算 出对于给定的 m 和 n,有多少种不同的宝石排列方案。对于给定的 m 和 n,计算出不同的宝石排列方案数。数据输入: 第 1 行有 2 个正整数 m 和 n,0< m≤ n&l...原创 2018-07-18 21:16:44 · 1808 阅读 · 0 评论 -
算法设计与分析: 5-10 排列宝石问题
5-10 排列宝石问题问题描述现有n种不同形状的宝石,每种 n 颗,共n2n2n^2颗。同一种形状的n颗宝石分别具有n种不同的颜色c1,c2,...,cnc1,c2,...,cnc_1,c_2,...,c_n 中的一种颜色。欲将这n2n2n^2颗宝石排列成n行n列的一个方阵,使方阵中每一行和每一列的宝石都有n种不同形状和n种不同颜色。试设计一个算法,计算出对 于给定的 n ,有多少...原创 2018-07-19 00:08:22 · 2303 阅读 · 0 评论 -
算法设计与分析: 5-11 重复拉丁矩阵问题
5-11 重复拉丁矩阵问题问题描述现有 k 种不同价值的宝石,每种宝石都有足够多颗。欲将这些宝石排列成一个 m 行 n列的矩阵,m≤n,使矩阵中每一行和每一列的同一种宝石数都不超过规定的数量。另外还 规定,宝石阵列的第 1 行从左到右和第 1 列从上到下的宝石按宝石的价值最小字典序从小到 大排列。试设计一个算法,对于给定的 k,m 和 n 以及每种宝石的规定数量,计算出有多少 种不同的...原创 2018-07-19 00:17:22 · 1372 阅读 · 1 评论 -
算法设计与分析: 5-12 罗密欧与朱丽叶的迷宫问题
5-12 罗密欧与朱丽叶的迷宫问题问题描述罗密欧与朱丽叶的迷宫。罗密欧与朱丽叶身处一个 m×n 的迷宫中,如图所示。每一个方格表示迷宫中的一个房间。这 m×n 个房间中有一些房间是封闭的,不允许任何人进入。 在迷宫中任何位置均可沿 8 个方向进入未封闭的房间。罗密欧位于迷宫的(p,q)方格中,他 必须找出一条通向朱丽叶所在的(r,s)方格的路。在抵达朱丽叶之前,他必须走遍所有未封 闭的...原创 2018-07-19 01:53:49 · 4659 阅读 · 0 评论 -
算法设计与分析: 5-13 工作分配问题
5-13 工作分配问题问题描述设有 n 件工作分配给 n 个人。将工作 i 分配给第 j 个人所需的费用为 cijcijc_{ij} 。试设计一个算法,为每一个人都分配 1 件不同的工作,并使总费用达到最小。设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。第一行有 1 个正整数 n (1≤n≤20)。接下来的 n 行,每 行 n 个数,表示工作费用...原创 2018-07-19 10:04:05 · 1904 阅读 · 0 评论 -
算法设计与分析: 5-14 独立钻石跳棋问题
5-14 独立钻石跳棋问题问题描述独立钻石跳棋的棋盘上有 33 个方格,每个方格中可放 1 枚棋子。棋盘中最多可摆放 32枚棋子。下棋的规则是任一棋子可以沿水平或垂直方向跳过与其相邻的棋子进入空着的方格 并吃掉被跳过的棋子。试设计一个算法,对于任意给定的棋盘布局,找出一种下棋方法,使得最终棋盘上只剩下一个棋子。 对于给定的独立钻石跳棋的棋盘初始布局,和棋盘上最终剩下的棋子所在的位...原创 2018-07-19 13:48:33 · 2684 阅读 · 0 评论 -
算法设计与分析: 5-15 智力拼图问题
5-15 智力拼图问题问题描述设有 12 个平面图形如图所示。每个图形的形状互不相同,但它们都是由 5 个大小相同的正方形组成。下图中 12 个图形拼接成一个 6×10 的矩形。试设计一个算法,计算出用这 12 个图形拼接成给定矩形的拼接方案。 对于给定矩形,计算用上述 12 个图形拼接成给定矩形的一个拼接方案。拼接方案中每个图形可以经过旋转或翻转后进行拼接,但要求使用 12 个...原创 2018-07-20 00:46:47 · 1971 阅读 · 0 评论 -
算法设计与分析: 5-16 布线问题
5-16 布线问题问题描述假设要将一组元件安装在一块线路板上,为此需要设计一个线路板布线方案。各元件的连线数由连线矩阵 conn 给出。元件 i 和元件 j 之间的连线数为conn(i,j)conn(i,j) conn(i,j)。如果将元件 i 安装 在线路板上位置 r 处,而将元件 j 安装在线路板上位置 s 处,则元件 i 和元件 j 之间的距离 为 dist(r,s)dist(r...原创 2018-07-20 08:47:29 · 4544 阅读 · 3 评论 -
算法设计与分析: 5-17 最佳调度问题
5-17 最佳调度问题问题描述假设有 n 个任务由 k 个可并行工作的机器完成。完成任务 i 需要的时间为titit_i 。试设计一个算法找出完成这 n 个任务的最佳调度,使得完成全部任务的时间最早。对任意给定的整数 n 和 k,以及完成任务 i 需要的时间为titit_i ,i=1~n。编程计算完成这 n个任务的最佳调度。数据输入: 第一行有 2 个正整数 n 和 k。第 ...原创 2018-07-20 10:22:27 · 1708 阅读 · 0 评论 -
算法设计与分析: 5-37 n²-1谜问题
5-37 n²-1谜问题问题描述重排九宫是一个古老的单人智力游戏。据说重排九宫起源于我国古时由三国演义故事“关羽义释曹操”而设计的智力玩具“华容道”,后来流传到欧洲,将人物变成数字。原始 的重排九宫问题是这样的:将数字 1~8 按照任意次序排在 3×33×33\times3 的方格阵列中,留下一个空 格。与空格相邻的数字,允许从上,下,左,右方向移动到空格中。游戏的最终目标是通过 合法...原创 2018-07-22 19:52:15 · 471 阅读 · 1 评论