题目大意一个人打工,每一天有一个收益,使用一点体力可以获得一份收益,每天回复固定的体力,体力有一个上限,超出之后就不回复了。问最多可以获得多少收益。思路分治策略:Solve(l, r, st, ed)表示第l天到第r天,初始体力为st,结束体力为ed的最大收益。显然,我们想让这个区间中的收益最大的那天干的越多越好,于是分情况讨论:
如果从一开始就休息,一直休息到收益最大的那天,没有达到体力的上限,...
分类:
其他好文 时间:
2015-03-28 15:50:02
阅读次数:
133
快速排序也是根据分治策略设计的一种高效率的分类算法。首先回顾下分类算法的分类思想:它从待分类序列S中随机取出一个元素x,并把S分成三个子序列S1,S2和S3,分别是S中小于,等于和大于x的元素序列,而后对S1和S2递归使用本算法,就可以得到排好序的序列。实际操作中通常不分出序列S2,而是直接把S2中...
分类:
编程语言 时间:
2015-03-15 18:13:03
阅读次数:
149
自荐者和推荐者请留言
基本算法
贪心算法:贪心算法 作者:独酌逸醉
贪心算法精讲 作者:3522021224
递归和分治:递归与分治策略 作者:zhoudaxia
图论
图的遍历(DFS和BFS): 图的遍历 作者:jefferent
最小生成树(Prim算法和Kruskal算法): 贪心算法--最小生成树 作者:独酌逸醉
Dij...
分类:
编程语言 时间:
2015-03-11 17:18:33
阅读次数:
185
递归与分治策略(一)
简而言之,递归就是自己调用自己。
递归算法:直接或者间接地调用自身的算法。
递归函数:用函数自身给出定义的函数。
注意:每个递归函数都必须有非递归定义的初始值,以确保递归函数完成计算。
下面通过两个例子来介绍递归的特点
例1 阶乘函数
阶乘函数递归地定义为:
n!=1 (n=0)
或者
n!=n(n-1)! (n>0)
下面用一段简单的...
分类:
编程语言 时间:
2015-03-02 14:58:09
阅读次数:
171
一、快速排序的描述快速排序是基于分治策略的。对一个子数组A[p…r]快速排序的分治过程的三个步骤为:1、分解数组A[p…r]被划分成两个(可能空)子数组A[p…q-1]和A[q+1…r],使得A[p…q-1]中的每个元素都小于等于A[q],且小于等于A[q+1…r]中的元素。下标q也在这个划分过程中...
分类:
编程语言 时间:
2015-02-16 23:21:18
阅读次数:
338
分治策略:在每层递归中应用如下三个步骤:分解:将问题划分为一些子问题(子问题的形式与原问题一样,只是规模更小)。解决:递归地求解子问题,当然,当子问题规模到你满意时就直接求解!合并:将子问题的解合并为原问题的解注: 有时会遇到需求解与原问题不完全一样的子问题,将其求解视为合并的一部分(出现此类情况可...
分类:
其他好文 时间:
2015-01-27 20:11:43
阅读次数:
255
五大算法之分治算法:当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。...
分类:
编程语言 时间:
2015-01-26 17:09:11
阅读次数:
330
一、什么是分治 有很多算法是递归的:为了解决一个给定的问题,算法要一次或多次递归调用其自身来解决的子问题。这些算法通常采用分治策略:将原问题划分为n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就得到原问题的解。二、分治算法的三个步骤 分治模式在每一层递归上都...
分类:
编程语言 时间:
2015-01-24 21:18:28
阅读次数:
296
快速排序是基于分治策略的一个排序算法。其基本思想是,对于输入的字数组a[p:r],按以下3个步骤进行排序:1、分解(divide):以a[p]为基准元素将a[p:r]划分成3段a[p:q-1],a[q],a[q+1:r],使得a[p:q-1]中任何元素小于等于a[q],a[q+1:r]中任何元素大于...
分类:
编程语言 时间:
2015-01-23 13:17:54
阅读次数:
229
归并排序算法是用分治策略实现对n个元素进行排序的算法。 其基本思想是:将待排序的元素分成大小大致相同的两个子集合,分别对2个子集合进行排序,最终将排序好的子集合合并成为所要求的排好序的集合。递归版本算法(不完全版本):1 public static void mergeSort(Compara...
分类:
编程语言 时间:
2015-01-22 15:13:14
阅读次数:
220