码迷,mamicode.com
首页 >  
搜索关键字:动态规划    ( 6061个结果
算法学习 - 动态规划(DP问题)(C++)
这几天一直再看,觉得看懂了一些,先记下来。动态规划动态规划是运筹学的一个方向,就是把多级最优化问题分解成一系列的单阶问题。在不断增加的过程中,不断的计算当前问题的最优解。一般分为如下四个部分: 线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等; 区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等; 树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等; 背包问题:01背包问题...
分类:编程语言   时间:2015-04-27 02:07:23    阅读次数:427
【LeetCode】003 Longest Substring Without Repeating Characters
题目:LeetCode 003 Longest Substring Without Repeating Characters题意:给一个字符串,找到一个没有重复字符的最长子串。样例:”bbbbb” 返回”b”的长度1;”abcabcbb”返回”abc”的长度3。思路:动态规划。dp[i]表示以第i个...
分类:其他好文   时间:2015-04-26 18:15:18    阅读次数:117
背包问题 算法实现
动态规划算法package algorithm;public class T7_21 { public static void main(String[] args){ int s[] = {2,3,4,5}; int v[] = {3,4,5,7}; ...
分类:编程语言   时间:2015-04-26 13:40:07    阅读次数:131
LCS 算法实现
动态规划算法#include #include #include #include using namespace std;#define MAXSTRLEN 20int Lcs(char x[], char y[], int path[][MAXSTRLEN])//求序列x和y的最长公共子序列,p...
分类:编程语言   时间:2015-04-26 12:13:39    阅读次数:118
编程之美——数组分割
一、题目概述:有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然:S(k, 1) = {A[i] |...
分类:编程语言   时间:2015-04-26 10:44:06    阅读次数:138
最长回文子串
今天是故意想用动态规划把题目写出来,虽然超时了,但我知道思想,明天再把优化算法写出来。 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经典的问题:“小Ho...
分类:其他好文   时间:2015-04-26 09:17:25    阅读次数:121
HDU1422 重温世界杯【DP】
题目大意: 给你N个城市,参观路线为1~2~3~4~5~…~N~1。可以从任何一座城市开始参观。每座城市提供的 生活费和需要的花费都不同,问:最多能参观多少个城市。 思路: 因为能形成循环,所以在原有数据的后边再接上1~N的数据。然后用动态规划来做。状态为:当上一 个城市剩下的钱不为负(即还未结束旅游),如果上一个城市剩下的钱加上当前城市的钱大于当前的生活 费,那么dp[i] = dp[i-1] + 1,更新剩下的钱,如果不够旅游了,就将剩下的钱归为0,从当前点开始 旅游,计算最大的dp[i],得到的就是...
分类:其他好文   时间:2015-04-25 22:51:07    阅读次数:165
[hiho 05]数字三角形
题目描述动态规划的要素是“最优子结构”和“重叠子问题”。解决问题最重要的是确定“状态”的含义和“转移方程”,以及最终解的状态表示。对于本题而言:状态 —— V[i, j]这个状态表示从顶(第一层第一个元素)到第i层第j个元素能达到的最大值转移方程 —— V[i, j] = max(V[i-1, j-...
分类:其他好文   时间:2015-04-25 22:28:28    阅读次数:187
nyoj 18 The Triangle 动态规划
和nyoj613(免费馅饼)一样的原理  从下 网上依次遍历 存贮最大值 #include #include using namespace std; int main() { int n,num[105][105]={0}; scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) scanf("%d",&num[i]...
分类:其他好文   时间:2015-04-25 21:18:00    阅读次数:148
nyoj 219 An problem about date 日期计算 附加最优代码(基姆拉尔森公式)
第一次直接计算的   超时了。后来把天数存贮在数组中 也算过了 不知道这题为什么分类在动态规划里面 #include int main() { int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31},year,mon,day; long long b[9605]={0},sum=0; for(int i=1600;i<9600;i++) { ...
分类:其他好文   时间:2015-04-25 16:41:00    阅读次数:156
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!