
算法—回溯法
JeffCoding
热爱移动互联网,热爱安卓,热爱Java
展开
-
回溯法 素数环问题
问题:输入正整数n,把整数1,2,3,4…..n组成一个环,使得相邻的两个整数之和均为素数。输出是,从整数1开始逆时针排列,n<=16; 样例输入: 6 样例输出: 1 4 3 2 5 6 1 6 5 2 3 4(1)直接枚举首先我们先不用回溯法来做, 使用直接枚举全部排列,然后得出解:#include<iostream>#include<algorithm>usi原创 2017-01-16 20:14:16 · 6323 阅读 · 0 评论 -
回溯法 批处理作业调度问题
问题:给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理,然后由机器2处理。作业Ji需(1≤i≤n)要机器j(1≤j≤2)的处理时间为 tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。所有作业在机器2上完成处理的时间和称为 该作业调度的完成时间和。 要求对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。 tji 机器1 机器原创 2017-01-16 23:06:08 · 3748 阅读 · 1 评论 -
回溯法 图着色问题
问题:给定 无向连通图G=(V,E) 和 c种不同的颜色,用这些颜色为图G的各顶点着色,每个顶点着一种颜色。如果一个图最少需要c种颜色才能使图中每条边连接的2个顶点着不同颜色,则称c为该图的色数。 著名的 四色定理 就是指每个平面地图都可以只用四种颜色来染色,而且没有两个邻接的区域颜色相同。求:给定图的顶点v,顶点间的边邻接关系graph[][],颜色的数量c,一共有多少种着色方法?对于上面这图,原创 2017-01-17 19:42:29 · 8782 阅读 · 1 评论 -
暴力搜索 回溯法 —— 八皇后问题
暴力搜索 枚举暴力搜索的核心就是暴力,即把所有的可能性都列出来,然后一一试验,最后得到解。下面来看看一些暴力搜索的例子:1. 除法输入正整数n,从小到大输出所有形如abcde / fghij = n 的表达式,其中a~j 是 数字0~9的一个排列,2<= n <=79 样例输入: 62 样例输出: 79546 / 01283 = 62 94736 / 01528 = 62原创 2017-01-16 19:54:18 · 2136 阅读 · 0 评论 -
回溯法 求一个子集问题:装载问题、最大团问题
一:装载问题有一批共n个集装箱要装上2艘载重量分别为c1和c2的船,其中集装箱i的重量为wi,且装载问题要求确定是否有一个合理的装载方案可将这些集装箱装上这2艘船。如果有,找出一种装载方案。例如当n=3,c1=c2=50且w=[10,40,40]时,则可以将集装箱1和2装到第一艘轮船上,而将集装箱3装到第二艘轮船上;如果w=[20,40,40],则无法将这3个集装箱都装上轮船。分析:容易证明,如果一原创 2017-01-17 01:24:08 · 2515 阅读 · 0 评论 -
回溯法 01背包问题
问题01背包问题之前用动态规划的方法实现过:动态规划 01背包问题(简单易懂)01背包问题一般用回溯法的子集树框架来实现#include<iostream> using namespace std; int n,c,bestp;//物品个数,背包容量,最大价值 int p[10000],w[10000],x[10000],bestx[10000];//物品的价值,物品的重量,物品的选中情原创 2017-01-17 23:12:08 · 2210 阅读 · 1 评论