动态规划转化成 DAG 然后拓扑求解的思路
虽然很简单不过感觉这个新思路会很有用!
如果两个事件互不影响并且有先后关系,就可以连一条有向边,跑最长路可以得到最后的最优解 ...
分类:
其他好文 时间:
2018-12-02 16:45:11
阅读次数:
151
参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/GreedyAlogrithm一.贪心算法贪心算法属于比较简单的算法,它总是会选择当下最优解,而不去考虑单次递归时是否会对未来造成影响,也就是说不考虑得到的解是否是全局最优。在很多实际问题中,寻找全局最优解的代价是非常大的,这时候就可以通过求次优解来解决问题,这种思想
分类:
编程语言 时间:
2018-11-30 14:13:50
阅读次数:
126
基本要素: 贪心选择:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 最优子结构:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。 过程: 过程: 建立数学模型来描述问题; 把求解的问题分成若干个子问题; ...
分类:
编程语言 时间:
2018-11-28 00:30:44
阅读次数:
291
"嘟嘟嘟" 这个数据范围显然是折半搜索。 把序列分成两半,枚举前一半的子集,存下来。然后再枚举后一半的子集,二分查找。 细节: 1.最优解可能只在一半的子集里,所以枚举的时候也要更新答案。 2.对于当前结果$tot$,二分查找$ tot$的时候要把$ tot$两边的元素都和$tot$加起来试一下,而 ...
分类:
其他好文 时间:
2018-11-27 12:28:23
阅读次数:
241
先按魔力值从大到小排序,然后从大到小插入线性基中,如果插入成功就加上这个魔力值 因为线性基里是没有异或和为0的集合的,所以正确性显然,然后最优性,考虑放进去一个原来没选的,这样为了可行性就要删掉一个,又因为是从大到小加进去的,所以删掉的这个魔力值一定是大于加进去的,所以不优,所以贪心构造的就是最优解 ...
分类:
其他好文 时间:
2018-11-25 13:23:57
阅读次数:
189
"嘟嘟嘟" 题目大意:给一个费用流的残量网络,判断是不是最优解。如果不是,输出比当前解更优的任意一种方案。 刚开始以为是水题:建完图后跑费用流,并记录选取方案,最后输出。 然而这样会$TLE$! 所以我还是看了题解。 原来用了费用流的一条性质:当前流是最小费用流 $$残量网络中没有负圈。 所以做法就 ...
分类:
其他好文 时间:
2018-11-25 11:43:34
阅读次数:
219
noip怎么考这种东西啊。。。看错题场上爆零凉了 首先我们先进行树链剖分,那么问题可以转换成重链的答案+其他子节点的答案 而每次修改相当于改一段重链的答案,改一次其他子节点的答案交替进行 这样只有一个好处,就是把问题转换成序列问题,可以用线段树优化 fx,1表示不选当前点的最优解,fx,2表示选 方 ...
分类:
其他好文 时间:
2018-11-22 14:32:10
阅读次数:
180
一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点 ...
分类:
编程语言 时间:
2018-11-16 23:40:00
阅读次数:
309
概念 回溯法是把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。 首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如果不可行,则跳过对该节点为根的子树的搜索,逐 ...
分类:
其他好文 时间:
2018-11-08 00:10:34
阅读次数:
216
近期在搞论文,须要用梯度下降算法求解,所以又一次整理分享在这里。主要包含梯度介绍、公式求导、学习速率选择、代码实现。 梯度下降的性质: 1.求得的解和选取的初始点有关 2.能够保证找到局部最优解,由于梯度终于会减小为0,则步长与梯度的乘积会自己主动越来越小。 梯度简单介绍 一个多元函数的在某点的梯度 ...
分类:
编程语言 时间:
2018-11-07 20:13:39
阅读次数:
291