码迷,mamicode.com
首页 >  
搜索关键字:动态规划    ( 6061个结果
poj 动态规划DP - 1953 World Cup Noise
这一题其实就是斐波那契数列,但是我一开始用的是DP,不过应该思想差不多。 一数组dp[i][2],dp[i][0]代表前i个数里面最后一个数字为0的数量,dp[i][1]代表前i个数里面最后一个数字为1的数量,可知dp[i][1]+dp[i][0]就是前i个数能组成序列的数量。 这里因为不能2个1在一起,所以: dp[i][0] = dp[i-1][0]+dp[i-1][1] dp[i][...
分类:其他好文   时间:2015-05-04 18:19:23    阅读次数:128
nyoj546 Divideing Jewels (动态规划+优化||搜索+剪枝)
题意:给你n个宝珠,然后给宝珠个价值,价值范围【1,10】,能不能均分给两个人。 输入的数据:价值分别为1,2,3...10的有多少个。 这道题和队友做了好久最终在结束前5分钟AC。。第一次简单的动规结果TLE 不过和队友认为一定是动规。就在想如何优化,想到如果某个价值的个数有偶数个就不判断,奇数个就存入数组。 结果还是wr...我们不放弃啊、、、为就想着写几组数组,当0 2 0 1 0...
分类:其他好文   时间:2015-05-04 18:14:23    阅读次数:96
动态规划之矩阵连乘问题
问题描述:给定n个矩阵(A1,A2,A3.....An},其中Ai与Ai+1是可乘的,i=1,2,...n-1。考察n个矩阵的连乘积A1A2A3,....An。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序,这种计算次序可以用加括号的方式来确定。加括号的方式决定了整个计算量(指的...
分类:其他好文   时间:2015-05-04 17:45:45    阅读次数:183
HDU ACM 3183 A Magic Lamp->RMQ的ST算法或贪心
分析: 1、贪心,对数组进行扫描,如果a[i]>a[i+1]则把a[i]删除,直到删除m个为止;如果扫描一遍后删除的数不够m个,则在把数组末尾的数删除,直到总的删够m个,数组中剩下的数从头到尾即为结果。 2、RMQ算法解决,假设数组的长度为len,要删除的数的个数为m,那么最终数组中将剩下len-m个,因此可以找出数组中第一个到第m+1个的最小数作为最终结果的第一位,并假设最小数下标为i,再找...
分类:编程语言   时间:2015-05-04 13:51:02    阅读次数:182
OJ练习38——T198 House Robber
抢劫一排沿街的房子,每一家有不同的财富值,一夜之内抢了连续两家就会拉响报警。给出每家的财富值,求最多能抢到多少?【思路】动态规划求最优解。解题关键:递推式——maxV[i]=max{maxV[i-2]+nums[i], maxV[i-1]};【other code】int rob(vector& n...
分类:其他好文   时间:2015-05-04 10:00:19    阅读次数:98
BZOJ 1742 Usaco2005 nov Grazing on the Run 边跑边吃草 动态规划
题目大意:给定一个数轴,初始在位置pp,有nn坨草(n≤3000n\leq 3000),约瑟芬需要吃掉所有的草,定义一坨草的腐败值为吃掉的时间,求最小腐败值之和 容易证明任何时刻约瑟芬吃掉的草都是一个区间。(废话,难道还能路过草不吃?) 因此令fi,j,kf_{i,j,k}表示已经吃掉了以i开头的j坨草,当前在左端点/右端点的最小腐败值之和(包括被吃掉的和未被吃掉的,当然被吃掉的腐败值就不会再涨...
分类:其他好文   时间:2015-05-03 16:04:12    阅读次数:658
UVa1637 - Double Patience(离散概率)
用九元组表示当前状态,即每队牌剩的张数,状态总数为5^9=1953125. 设d[ i ]表示状态i对应的成功概率,则根据全概率公式,d[ i ]为后继成功概率的平均值,按照动态规划的写法计算即可。 既然求的是成功的平均概率。 拿 第一行来说  点数可能是 1 2 3 4 5 6 7 1  1. 那么 取走 第一位的1 和倒数第二位1的成功概率为p1 第一位与最后一位为p2 最...
分类:其他好文   时间:2015-05-03 12:08:04    阅读次数:149
杭电ACM1087——Super Jumping! Jumping! Jumping!
这题,简单的动态规划,也就是求最大连续子序列的和,是和最大。 知道了这个,就可以很容易的写出代码来了。 状态转移方程:dp[i] = max{ dp[j] } + a[i] ( j >= 0 && j 有了状态转移方程,一切都是很简单了。 下面的是一次AC的代码: #include using namespace std; int main() { int dp[1005], a...
分类:其他好文   时间:2015-05-03 12:00:59    阅读次数:116
给定由n个整数组成的序列a1,a2,...,an,求该序列子段和的最大值,如当序列为-2,11,-4,13,-5,-2,则序列子段和最大为11-4+13=20.
一、问题分析如果采用暴力解决,即考虑子段的情况总数为1+2+...+n=O(n^2)。考虑动态规划算法,可以实现O(n)算法复杂度。二、程序设计三、程序结果如果序列全是负数的话,其实就是在选择最大值
分类:编程语言   时间:2015-05-02 21:58:41    阅读次数:1925
动态规划总结【模板】
最长递增子序列 最长公共子序列 最长回文子序列 最小编辑距离...
分类:其他好文   时间:2015-05-02 01:10:34    阅读次数:232
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!