题目链接:HDU 1176 免费馅饼
中文题。
dp[i][j]表示第i秒在j位置得到最大的馅饼数,右边1步,左边1步,原地不动三个状态转移过来。
状态转移方程:dp[i][j]=max(dp[i+1][j],max(dp[i+1][j+1],dp[i+1][j-1]))+mp[i][j];
AC代码:
#include
#include
#include
usin...
分类:
其他好文 时间:
2015-02-06 09:42:51
阅读次数:
129
题目描述
给N个数字和正整数K,问用K个乘号和N个数字组成表达式乘积最大是多少
样例输入
4 2
1231
样例输出
62
解题思路
经人提醒发现是道DP。。。dp[i][j]表示前i个数字用j个乘号得到的最大值
状态转移方程为 dp[i][j] = max(dp[p][j-1]*ans(p,i-1)) (ans(a,b)为数组s[a]到s[b]组成的数)(1...
分类:
其他好文 时间:
2015-02-05 23:25:30
阅读次数:
182
给定一个数n,判断1-->n有多少个数字含“49”可以用dp的方式来解决,dp[i][0] 表示长度为i,不含"49"的数字的个数dp[i][1] 表示长度为i,第i位为数字9的个数dp[i][2] 表示长度为i,含”49“的数字的个数所以,dp[i][0] 的包含dp[i][1]的状态转移方程如下...
分类:
其他好文 时间:
2015-02-05 20:06:17
阅读次数:
253
动态规划题目做的真的很少,自己也不太熟练,这题也是连蒙带猜才弄出来。
dp[i]表示以data[i]结尾的最大分数,那么状态转移方程为:dp[i]=max(dp[j]+data[i],data[i])(0
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int N...
分类:
其他好文 时间:
2015-02-04 23:31:11
阅读次数:
344
Sparse Tabel名为稀疏表,又称为ST表,可以在O(1)的时间复杂度下完成查询区间最值,相比线段树和树状数
组,效率提升了不少.ST表本质上是一个很经典的dp,通过预处理完成O(1)的查询.既然是个dp,那我们来看下dp的
定义吧(下面以查询区间最大值为例).
dp[i][j]:表示以i为起点,长度为2^j的区间最值
那么我们很容易得出状态转移方程:...
分类:
其他好文 时间:
2015-02-03 13:25:50
阅读次数:
188
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4487题意:开始位置在0,每一步可以向右向左或者不动,问走了n步后,路径中能到达最右的期望。分析:dp[i][j][k]表示走了i步,到达j位置,且路径中最右位置为k时概率。状态转移方程:if(j==k)...
分类:
其他好文 时间:
2015-01-31 11:55:16
阅读次数:
137
又是一道经典的状态压缩dp
开始自己想了一下,总是觉得因为这个小矩形可以竖着放导致没法确定状态如何转移(第i行的小矩形如果竖着放,及可能影响i-1行,也有可能影响i+1行);后面看了别人的题解后,才知道原来我们可以固定小矩形竖着放的时候只能向前放,这样第i行的状态就只能影响i-1行了,也就能顺利的写出状态转移方程啦。
设dp[i][j]表示第i行处于状态j的时候,共有多少种放置方法。
dp[...
分类:
其他好文 时间:
2015-01-30 21:09:57
阅读次数:
243
开始的时候一直想不到一个合适的状态转移方程;
后面想到可以分别求以中间那个数为终点和起点的最长上升子序列的长度,
然后以这个数为中心数的Wavio Sequence的长度就是其中短的那个值*2-1的值;
然后我们取所有数Wavio Sequence的最大长度作为答案。
这个题目卡了n^2的求最长上升子序列的算法,必须用nlgn算法才能过。
代码如下:
#include
...
分类:
其他好文 时间:
2015-01-27 09:29:57
阅读次数:
183
这是我做的第六道动态规划水题,对动态规划差不多有了一个大致的概念。动态规划有几个关键因素,第一是最优子结构,第二是状态和状态转移方程。整个过程都是以 最优 为中心的。因此在状态转移方程中常涉及到几个子状态的最优化的判断。这道题既采用了递堆的思想,又采用了一点动态规划的思想。状态转移方程为:f[i]=...
分类:
其他好文 时间:
2015-01-26 22:20:23
阅读次数:
188
问题B Wrom给我的想法: 这个题目我觉得是最基础的搜索DP题了。 给我的提示就是 划分状态的思维: 根据式子的特点。比如Max Sum。根据连续性。从而获得的是 dp[i] = max(a[i],dp[i-1]+a[i]); 获得状态转移方程的思维: 思维1:正搜也就是所谓的记忆化搜索其实...
分类:
其他好文 时间:
2015-01-24 18:34:23
阅读次数:
232