1、图的m着色问题: 1 /* 2 *问题描述:给定无向连通图G和m种不同的颜色。用这些颜色为图G的各个顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的两个顶点着不同的颜色。 3 * 这个问题是图的m可着色判定问题。若一个图最少需要m中颜色才能使图中每条边连接的2个顶...
分类:
其他好文 时间:
2014-06-14 20:30:24
阅读次数:
328
5类算法小结:
递归与分治法, 动态规划, 贪心算法, 回溯法, 分支界限法...
分类:
其他好文 时间:
2014-06-01 13:59:44
阅读次数:
269
一、原题如果有一组物品,各个物品的质量已知,现有一个背包,背包可以容纳的质量总和S已知,问是否能从这N个物品中取出若干个恰好装入这个背包中。二、递归算法本质思想:设法尝试全部组合,当部分组合已经无法满足条件时,马上停止当前组合的尝试;若出现第一个满足条件的组合,马上停止尝试。使用递归回溯法实现。(感...
分类:
其他好文 时间:
2014-05-30 06:09:10
阅读次数:
254
回溯法解N皇后问题1,代码分析:使用一个一维数组表示皇后的位置其中数组的下标表示皇后所在的行数组元素的值表示皇后所在的列这样设计的棋盘,所有皇后必定不在同一行假设前n-1行的皇后已经按照规则排列好那么可以使用回溯法逐个试出第n行皇后的合法位置所有皇后的初始位置都是第1列那么逐个尝试就是从1试到N如....
分类:
编程语言 时间:
2014-05-26 12:33:02
阅读次数:
392
剑指offer上解决八皇后问题,没有用传统的递归或非递归回溯法,而是用了很巧妙的全排列法。
先说下八皇后问题:在8 X 8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处于同一行,同一列或者同意对角线上,求出所有符合条件的摆法。
全排列解决八皇后问题的思路如下:
由于8个皇后不能处在同一行,那么肯定每个皇后占据一行,这样可以定义一个数组A[8],数组中第i个数字,即A[i]表示位于第i行的皇后的列号。先把数组A[8]分别用0-7初始化,接下来对该数组做全排列,由于我们...
分类:
其他好文 时间:
2014-05-26 03:22:14
阅读次数:
223
接上一篇,同样的01背包问题,上一篇采用动态规划的方法,现在用回溯法解决。回溯法采用深度优先策略搜索问题的解,不多说,代码如下:
bestV=0
curW=0
curV=0
bestx=None
def backtrack(i):
global bestV,curW,curV,x,bestx
if i>=n:
if bestV<curV:
bestV=curV
bestx=...
分类:
编程语言 时间:
2014-05-24 22:08:01
阅读次数:
544
装载问题同样也是递归回溯法的一个简单应用,用子集树表示解空间显然是最合适的。在递归回溯时,可以进行相应的剪枝。问题的解要满足两个条件:1.首先将第一艘轮船尽可能装满2.将剩余的集装箱装上第二艘轮船由此可知,只要求出不超过第一艘轮船载重量c1的最大值,若总重量-c1#include#include#i...
分类:
其他好文 时间:
2014-05-21 19:20:24
阅读次数:
296
8皇后问题也是搜索的简单题,应用回溯法即可解决,8*8的棋盘上摆放8个皇后,使得每个皇后不能相互攻击,若两个皇后在同一列,同一行,主对角线上,副对角线上都视为可以相互攻击。/*
* @author Panoss */#include#include#include#include#include#....
分类:
其他好文 时间:
2014-05-21 18:35:00
阅读次数:
206
HDU 1010 Tempter of the Bone
题目大意:
给定N*M一张图,问你从起点S到终点D不经过障碍物X恰好K步能否到达?
解题思路:
利用回溯法搜索1条路径即可。
但是注意剪枝
(1)如果剩余的步数小于当前位置到终点的绝对距离,肯定不可行
(2)如果剩余的步数相比到终点的位置的绝对距离为奇数,肯定也不可行
解题代码:见文章。...
分类:
其他好文 时间:
2014-05-21 14:04:09
阅读次数:
247