2014年3月8日

【算法导论】学习笔记——第16章 贪心算法

摘要: 贪心算法是使做出的选择看起来都是当前最佳的,期望通过所做的局部最优选择来产生一个全局最优解。其实,这个定义旨在说明贪心算法必须伴随做出最优选择,如moving table,我们选择最大重叠数等等。当然,很多情况下,并不一定局部最优解就是全局最优解。与DP类似,很多贪心算法设计时都很容易想到递归的形式,然而由于深度太深,很容易stack overflow。因此,这时候,大多我们都需要将递归变为递推。以前,不是很会转化。现在,觉得很容易。递归是自顶向下求解,而递推则是自底向上求解。一般递推都需要伴随着表来实现。1. 在开发一个贪心算法时,我们一般要遵循如下几个步骤:(1)设计问题的最优子结构(2) 阅读全文

posted @ 2014-03-08 21:54 Bombe 阅读(449) 评论(0) 推荐(0) 编辑

【HDOJ】2111 Saving HDU

摘要: 超水贪心,贴上来是因为例子太经典了,可以比较DP和贪心的不同。(部分背包和0/1背包)#include #include #define MAXNUM 105int treas[MAXNUM][2];int comp(const void *a, const void *b) { return *(int *)b - *(int *)a;}int main() { int v, n; int i, j, tmp; while (scanf("%d", &v)!=EOF && v) { scanf("%d", &n); fo 阅读全文

posted @ 2014-03-08 17:13 Bombe 阅读(166) 评论(0) 推荐(0) 编辑

【DataStructure In Python】Python模拟栈和队列

摘要: 用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque。以下内容为栈:#! /usr/bin/env python# DataStructure Stackclass Stack: def __init__(self, data=None): if data is not None: self.stk = [data] self.top = 0 else: self.stk = [] self.top = -1 def _... 阅读全文

posted @ 2014-03-08 12:49 Bombe 阅读(553) 评论(0) 推荐(0) 编辑

导航