问题描写叙述平面上有N*M个格子,每一个格子中放着一定数量的苹果。你从左上角的格子開始,每一步仅仅能向下走或是向右走,每次走到一个格子上就把格子里的苹果收集起来,这样下去,你最多能收集到多少个苹果。输入:第一行输入行数和列数然后逐行输入每一个格子的中的苹果的数量输出:最多能收到的苹果的个数。思路分析...
分类:
移动开发 时间:
2014-06-12 14:44:38
阅读次数:
245
卡特兰数
栈是一种常见的数据结构,有许多关于栈的问题,其中之一就是统计元素可能的出栈序列。具体说,就是给定n个元素,依次通过一个栈,求可能的出栈序列的个数。
如果我们用直接模拟的方法,当n较大时会很费时间;
例如动态规划。令f[i,j]表示栈内有i个元素且栈外有j个元素还未进栈,那么以进栈还是出栈为决策就马上得到了转移方程f[i,j]=f[i-1,j]+f[i+1,j-1]。如此一来,很...
分类:
其他好文 时间:
2014-06-11 06:29:56
阅读次数:
296
题目:有n种硬币,面值分别为V1,V2,...Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值!
分析:我们把每种面值看作一个点!表示“还需要凑足的面值”,初始状态为S,目标状态为0。那么若当前状态在i,每使用一个硬币j,状态便转移到i-Vj。
代码:
记忆化搜索:
#include
#include
using n...
分类:
其他好文 时间:
2014-06-10 18:45:32
阅读次数:
315
题目
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).
The robot can only move either down or right at any point in time. The robot is trying t...
分类:
其他好文 时间:
2014-06-10 18:43:37
阅读次数:
254
数塔
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 20786 Accepted Submission(s): 12486
Problem Description
在讲述DP算法的时候,一个经典的例子就是数...
分类:
其他好文 时间:
2014-06-10 18:03:42
阅读次数:
272
以i为根节点时,其左子树构成为[0,...,i-1],其右子树构成为[i+1,...,n]构成。根结点确定时,左子树与右子树的结点个数都是确定的。这样就可以把这个问题化成子问题。因此可以用动态规划解。Sigma(左边的子树可能状态
* 右边子树可能状态) = 当前个数的结点可能的状态数。public...
分类:
其他好文 时间:
2014-06-10 12:46:05
阅读次数:
175
给定一个包含N个整数的数组,求数组的子数组之和的最大值。...
分类:
其他好文 时间:
2014-06-10 11:18:42
阅读次数:
154
题目
You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
方法
从后往前求解...
分类:
其他好文 时间:
2014-06-10 07:38:21
阅读次数:
171
如果问题是由交叠的子问题所构成的,那么我们就可以用动态规划技术来解决它。也就是说,一个问题的解可由它的规模更小的子问题的解递推得出。由于子问题的交叠性质,所以采用递归地方法一次又一次地求解子问题时,进行了很多重复的工作。所以动态规划法建议:把子问题的解存入某个表中,通过表一步步反解出原始问题。斐波那契数列就是一个很好的例子:
F(n) = F(n-1) + F(n-2) 当n≥2
F(...
分类:
其他好文 时间:
2014-06-10 06:59:47
阅读次数:
354