
回溯
桃三岁
这个作者很懒,什么都没留下…
展开
-
算法设计——符号三角形(回溯)
问题给定第一行的符号(只有+,-)数目n,每行比上一行数目少一(形成一个倒三角),2个相同符号下面为“+”号,2个不同符号下面为“-”号,要求有多少种情况使得两种符号数目相同。第一行为7的符号三角形之一:分析我们发现由于只有两种符号,所以我们可简化为0、1形式①总符号数为n(n+1)/2,如果总数为奇数,那么一定不可能符号数相等②当某一符号数大于总数的一半时,那么此情况不存在解代码实现#include<stdio.h>#define N 100int n;int cnt原创 2020-05-08 18:13:37 · 1759 阅读 · 0 评论 -
算法设计——批处理作业(回溯)
问题(有点类似动归的流水作业哈)就是求的时间不同这里需要求的每个作业在机器二上完成时的时间和如有3个作业在机器一上的加工时间为2 3 2在机器二上的加工时间为1 1 3此时安排方法有3!种1 2 3:时间为3+6+10=191 3 2:时间为3+7+8=182 1 3:时间为202 3 1:时间为213 1 2:时间为193 2 1:时间为19此时我们求得方法为第二种...原创 2020-05-08 16:25:21 · 431 阅读 · 0 评论 -
算法设计——装载问题(两轮船)(回溯)
问题要求确定一个合理的装载方案将n个集装箱装入两艘船,如果有,找出一种方案分析我们之前用贪心做过一艘船的最优装载问题(将尽可能多的集装箱装入),即将重量小的集装箱先装。那么我们看看这个题,如果用贪心的话能不能做出来。假设两艘船载重量为100 100,假设有5个物体,重量为20 30 40 50 60,如果我们用贪心算法,那么第一艘船装入的物品为 20 30 40,共三个那么另一艘船...原创 2020-05-08 15:29:20 · 5719 阅读 · 1 评论 -
算法设计——回溯法相关概念
回溯法适用于解一些组合数相当大的问题策略:深度优先策略从根节点出发搜索解空间树到任一点时:1.先判断是否包含问题的解2.如果不包含,则跳过对该结点为根的子树的搜索,逐层向 其祖先结点回溯3.否则,进入该子树,继续按深度优先策略搜索回溯法的算法框架问题的解空间其含义为:所有可能解组成的空间问题的解向量:一个n元式(x1,x2,x3…xn)的形式显约束:对分量xi的取值进行限...原创 2020-05-05 11:32:07 · 907 阅读 · 0 评论