//一条队列对于第一个人的情况
//概率p1:队列保持不变
//p2:第一个人到队尾
//p3:第一个人出队
//p4:系统崩溃
//队列中有N个人,Tomato 在第M位置,求系统崩溃,Tomato 前面的人数为小于k个人的情况的概率
//dp[i][j] 表示队列中有i个人,Tomato 在第j个位置时出现目标状态的概率
//可以很容易得到递推公式
//dp[i][1] = p...
分类:
其他好文 时间:
2015-07-21 12:55:36
阅读次数:
122
一、动态规划算法
动态规划算法通常基于一个递推公式及一个或多个初始状态。当前问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式复杂度,因此它比
回溯法、暴力法要快。首先,我们要找到某个状态的最优解,然后在它的帮助下,找到下一个状态的最优解。要做的是抽象出动态规划的状态和状态转移方程(递推公式)。
二、编辑距离
1、问题描述
设A和B是2个字符串。要用最少的字符操...
分类:
其他好文 时间:
2015-07-21 01:36:40
阅读次数:
226
题意:给你n个数,求划分的区间所有的最大值之和(划分条件就是这个区间之和小于m),使其最小
首先很容易想到dp,公式 dp【i】= min(dp【i】,dp【j】+max(a【j+1】+。。。a【i】))
这是O(n^2)的复杂度
那么维护一个单调递减的序列的话,每次求的就是单调队列里面满足条件的那些元素,然后根据dp递推公式求解
Hint :用多组交的话会wA
#include
#...
分类:
其他好文 时间:
2015-07-18 12:34:43
阅读次数:
130
http://www.lintcode.com/zh-cn/problem/unique-paths-ii/在上一题的基础上加入了障碍物。同样可采用递归实现,递推公式不变,但是需要加入对障碍物的判断。下面是实现的代码: 1 #include 2 #include 3 class Solution.....
分类:
其他好文 时间:
2015-07-16 19:19:56
阅读次数:
193
http://www.lintcode.com/zh-cn/problem/unique-paths/递推公式:f[m][n] = f[m-1][n]+f[m][n-1]可采用DP或者记忆化的递归实现。下面是递归实现的代码: 1 #include 2 class Solution { 3 publ....
分类:
其他好文 时间:
2015-07-16 19:10:46
阅读次数:
168
对于许多递推题目,由于数据范围太大直接循环写会爆掉,这时首先想到的就是矩阵优化,把递推式转换成01矩阵通过快速幂优化。 比如最简单的斐波纳挈,如果n非常大,循环递推肯定是不合适的,那么可以考虑下面的公式 (f[n],f[n-1])=(f[n-1],f[n-2])*A; 这里的A是一个01矩阵,此.....
分类:
其他好文 时间:
2015-07-16 13:39:40
阅读次数:
134
题意:
求s(n,0)+s(n,1)+...s(n,n),s(i,j)为第二类Stirling数。
分析:
有递推公式s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1) ,1
代码:
//poj 1671
//sep9
#include
using namespace std;
double s[64][64];
double sum[64];
int main()
{
...
分类:
其他好文 时间:
2015-07-01 10:01:04
阅读次数:
121
称号:给定一个int整数类型n,它代表了楼梯的阶。每一个可能的步骤时,楼梯,有可能采取两个步骤,求完成n楼梯有多少种不同的方法算法:递归是最简单的方法,但超时。递归转换的递推公式:f(n) = f(n-1)+f(n-2)public class Solution { public int cl...
分类:
其他好文 时间:
2015-06-26 12:36:09
阅读次数:
121
找到递推公式,题目就引刃而解了。数学公式博文没办法写,就写在了word上,切过来了:
用 f 或者 g 都能求出,我两个方法都试了,结果用 g 要比 f 快了近一倍,原本以为 f 会快些,可能是因为往上走红气球天多的缘故。
AC代码:
#include
#include
#include
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2015-06-22 11:08:22
阅读次数:
117