看代码时遇到一个求32bit二进制数中1的个数的问题,感觉算法很奇妙,特记录学习心得于此,备忘。计算一个64bit二进制数中1的个数。解决这个问题的算法不难,很自然就可以想到,但是要给出问题的最优解,却很有难度。通常,最容易想到的算法是除余法,继而考虑到除法的代价较高,而且除数是2,会想到使用向右移...
分类:
编程语言 时间:
2015-03-14 22:56:43
阅读次数:
369
贪心算法正确性证明:1.证明贪心选择性质:经过贪心选择,可以获得最优解2.最优子结构:证明子问题最优解与贪心选择组合,结果依然是最优解?All we really need to do is argue that an optimal solution to the subproblem, comb...
分类:
编程语言 时间:
2015-03-14 16:46:02
阅读次数:
200
一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点...
分类:
编程语言 时间:
2015-03-13 22:19:47
阅读次数:
213
HDU 1043的加强版
8数码问题
给出8数码问题的两种状态,求从A状态到B状态的最优解,数据保证有解,若有多解,输出最短且字典序最小的。
基本思路和1043的差不多,只不过这次要预处理出来9种情况的BFS
即:
BFS(0,"012345678");
BFS(1,"102345678");
BFS(2,"120345678");
BFS(...
分类:
其他好文 时间:
2015-03-13 16:38:09
阅读次数:
192
题目大意:给定一张地势图,所有的点都被水淹没,现在有一些关键点,要求放最少的水泵使所有关键点的水都被抽干
前排感谢VFK
首先可以证明一定存在一种最优解使所有的水泵都在关键点上
那么我们将所有关键点按照高度排序,从小到大枚举每个关键点
对于每个关键点x,我们将所有高度小于等于x点的点都加入并查集并将相邻的合并
由于x是并查集中最高的点,因此并查集中任意一个点放置水泵都会导致点x被抽干...
分类:
其他好文 时间:
2015-03-10 17:17:34
阅读次数:
189
优化算法入门系列文章目录(更新中): 1.模拟退火算法 2.遗传算法一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要.....
分类:
编程语言 时间:
2015-03-09 10:54:31
阅读次数:
170
项目管理的主要控制要素是质量,进度和成本。项目管理的目标是在保证质量前提下,寻找进度和成本的最优解决方案,确保对成本/进度进行有效地控制。赢得值分析法是工程项目成本/进度综合度量和监控的有效方法:在水电工程中成本/进度综合控制中推广应用现代科学管理方法,并采用先进的信息技术手段,将给工程带来极...
分类:
其他好文 时间:
2015-03-08 09:19:52
阅读次数:
159
五大常用算法之一:贪心算法 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略....
分类:
编程语言 时间:
2015-03-07 19:54:44
阅读次数:
192
//dp[u][k1]=min(dp[u][k1-k2]+dp[v][k2]+edge*k2*(k-k2))
//dp[u][k]表示以u节点为根节点的子树中选k个节点所得的最优解
#include
#include
#include
#include
using namespace std;
const int maxn=2010;
const __int64 inf=1e18;...
分类:
其他好文 时间:
2015-03-06 16:00:36
阅读次数:
122
贪心算法采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择就将所求问题简化为一个规模更小的子问题,通过每一步贪心选择,可得到问题的一个最优解,虽然每一步上都要保证能获得局部最优解,但由此产生的全局解有时不一定是最优的,所以贪婪法不要回溯。能够用贪心算法求解的问题一般具有两个重要特性:贪心选择性质和最优子结构性质。
参考:http://babybandf.blog.163.com/...
分类:
编程语言 时间:
2015-03-03 23:47:20
阅读次数:
539