动态规划
文章平均质量分 56
「已注销」
复杂网络
展开
-
hdu 2059龟兔赛跑(DP)
龟兔赛跑Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12253 Accepted Submission(s): 4596Problem Description据说在很久很久以前,可怜的兔子经历了人生原创 2015-01-29 10:40:50 · 898 阅读 · 0 评论 -
C. George and Job
题目链接: http://codeforces.com/contest/467/problem/C· 二维DP· 题目中其实也有一个特点数字: 5000, 预示着可能使用二维dp。int f[5050][5050]可以开下,但是int f[10010][10010] 有的OJ就不行了· 注意结果会超int 。 dp[i][j]表示在取到第i个元素的时候取j个m长度的区间之原创 2014-12-25 19:37:25 · 569 阅读 · 0 评论 -
算法竞赛入门经典---函数部分4(动态规划)
竞赛篇:第9章:动态规划初步--- 动态规划本身并不是一个特定的算法,而是一种思想,一种手段。--- 有了动态转移方程,可以利用递归、递推等方式来求解此 动态转移方程 。--- 动态规划与递推关系: 个人觉得动态规划是有具体的状态含义的,而递推并没有这方面的要求,可以说递推也是动态规划的解决方法之一,但是递推也有不属于动态规划的地方。 9.1 数字三角形:状态转移原创 2014-12-25 19:36:31 · 674 阅读 · 0 评论 -
贪心、递归、递推以及动态规划算法的分析与对比(转:By: 夏天の冰块的BLOG)
贪心、递归、递推以及动态规划算法的分析与对比王喆 天津市第五十五中学【关键字】动态规划 贪心 递归 递推 分析 说明 NOIP【摘要】本文通过典型例题分析出贪心算法、递归算法、递推算法以及动态规划算法的区别和相似处。以及对这几种算法的思考方法,编程方法以及“递归节省时间浪费空间,递推滚动节省空间浪费时间”的解释和举例论证。【正文】一、各算法的介绍1.1贪心算法贪原创 2015-01-04 14:32:30 · 915 阅读 · 0 评论 -
最长不降子序列---dp
问题描述: 给定一个字符串,求出其不降子序列的最大长度。分析: 从后往前逆推:06对于n个数,我们可以分为n-1个阶段。07我们由后向前搜索(逆推法),我们可以这样思考:08 1· 对a(n)来说,由于它是最后一个数,所以当从a(n)开始查找时,只存在长度为1的不下降序列;原创 2015-01-05 12:59:39 · 643 阅读 · 0 评论 -
第七篇 动态规划
今天跟大家分享下算法思想中比较难的一种"动态规划",动态规划给人像是作战时常用的“迂回战术”,或者说是游击战,在运动中寻找突破口。 一: 思想 首先要了解”动态规划“,必须先知道什么叫做”多阶段决策“,百科里面对这个问题解释的很全,我就load一段出来,大家得要好好品味,好好分析。 上面图中最后一句话就定义了动态规划是要干什么的问题。 二:使用规则原创 2015-01-05 13:00:14 · 602 阅读 · 0 评论 -
Dire Wolf
·网上说是区间dp,但不是很懂;·看了别人的解题报告与代码,感觉跟分治比较像 解释: dp[i][j] 表示 杀从第i头狼到第j头狼所获得的最小伤害; for(int i=l+1;i dp[l][r] = min(dp[l][r],dfs(l,i) + dfs(i,r) + a[i] + b[l] + b[r]); // 先选择第i头狼原创 2014-12-25 19:38:54 · 595 阅读 · 0 评论 -
P1024 外星人的密码数字
描述 Description XXXX年突然有外星人造访,但大家语言不通,不过科学家们经过研究发现外星人用26个英文字母组成的单词中最长不降子序列的长度来表述数字,且英文字母的排列顺序不同,现给出其排列顺序,再给出外星人说的每个数字(其实是每个英文单词,用空格隔开),翻译出外星人所说的数字(连续输出,最后加回车)。 (因为是最长不降子序列,所以数字中没有0,也就是说外星人的数字是>=1的原创 2015-01-05 12:59:36 · 1228 阅读 · 0 评论 -
最大子序列和
题目1077:最大序列和时间限制:1 秒内存限制:32 兆特殊判题:否提交:4881解决:1420题目描述:给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。对于S的所有非空连续子序列T,求最大的序列和。变量条件:N为正整数,N≤1000000,结果序列和在范围(-2^63,2原创 2015-01-21 21:23:54 · 536 阅读 · 0 评论 -
DP 例题: 数字三角形
从上层到最底层进行走迷宫,路过房间拿到奖劵,问累积最多拿多少奖劵Code: 1 #include 2 #include 3 #include 4 #include 5 #include string.h> 6 #include 7 #include 8 using namespace std; 9 10 int f[110][110];原创 2014-12-25 19:38:03 · 489 阅读 · 0 评论 -
hdu Hatsune Miku(DP)
Hatsune MikuTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 162 Accepted Submission(s): 129Problem DescriptionHatsune Miku is a popul原创 2014-12-25 19:38:15 · 636 阅读 · 0 评论 -
POJ:1050(枚举 + DP)
1 #include 2 #include 3 #include 4 #include string.h> 5 #include 6 using namespace std; 7 #define N 105 8 int f[N][N]; 9 int sum[N][N];10 int main(){11 int n;12 while原创 2014-12-25 19:38:33 · 597 阅读 · 0 评论 -
背包九讲(转)
P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{原创 2014-12-25 19:38:46 · 492 阅读 · 0 评论 -
Happy Matt Friends (DP)
Happy Matt FriendsTime Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Others)Total Submission(s): 418 Accepted Submission(s): 159Problem DescriptionMatt has N friend原创 2014-12-25 19:38:48 · 777 阅读 · 0 评论 -
动态规划与递推——动态规划是最优化算法 ( 转自2004chen)
动态规划与递推——动态规划是最优化算法 2008-02-10 17:07:19| 分类: 默认分类 |举报|字号 订阅动态规划的实质是分治和解决冗余,因此动态规划也是递归思想的应用之一。但是,动态规划和递归法还是有区别的。一般我们在实际应用中遇到的问题主要分为四类:判定性问题、构造性问题、计数问题和最优化问题。动态规划是解决最优化问题的有效途径,而递推法在处理判定性问题和计数问题方面是一把原创 2015-01-04 14:32:28 · 3995 阅读 · 0 评论 -
最大子序列和、最长递增子序列、最长公共子串、最长公共子序列
转自:http://blog.csdn.net/xn4545945/article/details/38717245最大子序列最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单转载 2015-01-21 13:12:46 · 848 阅读 · 0 评论 -
最长递增子序列 O(n^2) 与 O(nlogn)
Super Jumping! Jumping! Jumping!时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:0 测试通过:0描述Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!”原创 2015-01-22 12:26:11 · 689 阅读 · 0 评论 -
九度1160:放苹果(简单dp)
http://ac.jobdu.com/problem.php?pid=1160#include #include #include #include #include #include using namespace std;#define N 1000100/* m个苹果放入n个盒子中: 不空的时候,将m个苹果取出n个,放入每个盒子一个,下面相当于是 m-n个苹果原创 2015-07-18 19:59:35 · 1159 阅读 · 0 评论