码迷,mamicode.com
首页 >  
搜索关键字:动态规划    ( 6061个结果
hdu 4104
先排序,再动态规划,需要优化 #include #include #include #include #include #include using namespace std; const int maxn = 1e3+10; const int maxm = 1e6+10; int a[maxn]; int f[maxm]; int main() { int N, k, i, j, ...
分类:其他好文   时间:2014-07-24 11:29:52    阅读次数:240
poj3616题(动态规划),看了别人的提示,自己又写了一遍
http://blog.csdn.net/xiaozhuaixifu/article/details/10818657参考文档链接动态规划的主要三种思维方式:递推(从前往后想),状态转移(从后往前想),记忆化搜索(记录之后直接查寻)。这里使用状态转移的思维解题,明确除了没有移动这种情况,每次接受到或...
分类:其他好文   时间:2014-07-24 09:46:02    阅读次数:185
最短路径算法小结
不同性质的图中,所采取的策略有所不同,自然存在各样的求最短路径的算法。* 无向无权图:BFS* 有向正权图:Dijkstra* 有向无负环图:Bellman-Ford(单点),Floyd-Warshall(任意两点)* 有向无环图(dags): 基于动态规划的算法。## 广度优先搜索(BFS)对于无...
分类:其他好文   时间:2014-07-23 20:47:15    阅读次数:261
poj 1664 放平果
此问题可分为两个子问题:当m 所以m 当m>=n时,可分为两种放法,一种为至少有一个盘子为空,则有f[m][n-1]种放法。 另外为n个盘子都不为空,则先将n个苹果一个一个放入n的盘子中,剩下的m-n个苹果再放入n个盘子中。此放法就相当于m-n个苹果放n个盘子里面,有f[m-n][n]种放法。 所以状态转移方程为f[i][j]:if(i>=j)f[i][j]=f[i][j-1]+f[i-j...
分类:其他好文   时间:2014-07-23 16:38:01    阅读次数:202
通过金矿模型介绍动态规划
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你...
分类:其他好文   时间:2014-07-23 14:57:26    阅读次数:208
编程之美之子数组之和的最大值以及扩展(可首尾相连)
情形一:不允许首尾相连 此情况很常见,方法是动态规划,编程之美的方法三给出了解法,这里就直接给出代码了 int maxSubSum(vector& data) { int length = data.size(); assert(length >= 0); int maxSum = data[length-1],startSum = data[length-1],begin = leng...
分类:其他好文   时间:2014-07-23 13:28:36    阅读次数:197
树形dp入门之poj 2342
题目:poj2342Anniversary party 题意:话说一个公司的一些然要去参加一个party,每个人有一个愉悦值,而如果某个人的直接上司在场的话会非常扫兴,所以避免这样的安排,问给出n个人,每个人的愉悦值以及他们的上司所属关系,问你让那些人去可以让总的愉悦值最大,并求出这个值。 分析:树形dp入门题目,这个公司的人事关系可以根据给出的数据得到一个树,最上面的是最高层...
分类:其他好文   时间:2014-07-23 13:03:06    阅读次数:184
UVA 10039 Railroads
这道题好吧,一开始便是拓扑排序的想法,搞了好久,试了多组测试数据,没错啊,可是没过。。。作孽啊,竟然忘了拓扑不能处理环,白浪费了一晚上。。。只好用动态规划了。。DP【time】【city】表示在time时刻到达city的最迟出发时间,当然,在这个时间不一定到city。转移方程挺简单,不说你也会。 1...
分类:其他好文   时间:2014-07-23 12:07:56    阅读次数:298
HDU1506 Largest Rectangle in a Histogram (动规)
HDU1506 Largest Rectangle in a Histogram (动规) 对于每一块木板,Area=height[i]*(j-k+1) 其中,j<=x=height[i];找j,k成为关键,一般方法肯定超时,利用动态规划,如果它左边高度大于等于它本身,那么它左边的左边界一定满足这个性质,再从这个边界的左边迭代下去 for(i=1;i=...
分类:其他好文   时间:2014-07-22 17:56:41    阅读次数:267
编程之美之子数组之和的最大值以及扩展(可首尾相连)
情形一:不允许首尾相连 此情况很常见,方法是动态规划,编程之美的方法三给出了解法,这里就直接给出代码了 int maxSubSum(vector& data) { int length = data.size(); assert(length >= 0); int maxSum = data[length-1],startSum = data[length-1],begin = leng...
分类:其他好文   时间:2014-07-22 17:54:40    阅读次数:197
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!