1. 实践题目 : 工作分配问题 2. 问题描述 : 设有n件工作分配给n个人,将工作i分配给第j个人所需的费用为cij,对于给定的工作费用,为每一个人都分配1 件不同的工作,设计一个算法,并使总费用达到最小。 3. 算法描述 : 1)解空间 : 其解空间为一颗排列树,类似于旅行售货员问题的解空间。 ...
分类:
其他好文 时间:
2018-12-23 19:31:55
阅读次数:
128
1.实践问题: 工作分配问题 2.问题描述: 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 3.算法描述: 1)解空间:排列树 2)测试样例的解空间树: 3)剪枝方法: 4.心得体会: ...
分类:
其他好文 时间:
2018-12-19 22:00:40
阅读次数:
185
堆和堆排序 如何理解堆 堆是一种特殊的树,只要满足以下两点,这个树就是一个堆。 ①完全二叉树,完全二叉树要求除了最后一层,其他层的节点个数都是满的,最后一层的节点都靠左排列。 ②树中每一个结点的值都必须大于等于(或小于等于)其子树中每个节点的值。大于等于的情况称为大顶堆,小于等于的情况称为小顶堆。 ...
分类:
编程语言 时间:
2018-12-02 18:32:49
阅读次数:
200
子集树 当所给的问题是从n个元素的集合S中找出满足某种性质的子集时,相应的解空间称为子集树。比如,01背包问题就是子集树。这类问题通常有2^n个叶子节点,总节点个数是2^(n+1)-1。遍历子集树的任何算法都需要 O(2^n)的时间。 选取数字: 排列树 当所给问题是确定n个元素满足某种性质的排列时 ...
分类:
其他好文 时间:
2018-11-08 00:23:34
阅读次数:
260
全排列 回溯算法之排列树 一 问题描述 给出一串字符的全排列 二 问题分析 采用回溯算法之排列树 三 代码实现 package backtracking_perm; import java.io.BufferedWriter; import java.io.FileWriter; import ja ...
分类:
其他好文 时间:
2018-11-07 23:00:39
阅读次数:
197
"题面" 【正解】 一眼找规律 …… 这东西有啥规律啊 哎好像根节点是最小的 好像可以组合数分配子树大小,子树内部…… 可以递归啊! 乱搞一顿就好啦 过了大样例 复杂度$O(N)$ 切完T2后T3水了一下,回来写了个$O(N!)$~~和T2同时~~对拍,没啥问题 检查了一下long long,没毛病 ...
分类:
其他好文 时间:
2018-10-30 17:13:12
阅读次数:
136
还是拿背包问题来分析吧,假设有N个背包,现在我们要对这个N个背包排列。。输出所有情况 那么有: 生动点形容整个场景,存在N个人 第一步,在这N个人中找一个人轮流坐在第一个位置上 第二步,在这N-1个人中找一个人轮流坐在第一个位置上 第一个位置已经固定人了 第三步,在这N-2个人中找一个人轮流坐在第一 ...
分类:
其他好文 时间:
2018-05-04 20:21:54
阅读次数:
166
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:回溯法,排列树。由于字符有 ...
分类:
其他好文 时间:
2017-12-26 14:31:15
阅读次数:
159
二叉查找树是一种有规律排列树中数据的树形结构 规则: 所有小于节点的数据都成为左子树,所有大于节点的数据都成为右子树。 1.contains方法 方法遍历使用了递归的形式 分为三步 1.根节点是否为空,为空返回空,不为空继续 2.判断这个数据比节点数据大小,大向左子树递归 3.小,向右子树递归 2. ...
分类:
其他好文 时间:
2017-08-29 14:15:22
阅读次数:
143