动态规划
成龙大侠
这个作者很懒,什么都没留下…
展开
-
租用游艇问题(动态规划)
问题描述:长江游艇俱乐部在长江上设置了n个游艇出租战1,2,……,n。游客可以在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 i 到游艇出租站 j 之间的租金位 r(i, j)。试设计一个算法,计算出从游艇出租站1到游艇出租站n所需的最少租金。输入:第一行一个正整数n表示有n个游艇出租站。接下来n-1行时r(i, j)输出:从游艇出租站1到游艇出租站...原创 2019-10-21 20:41:06 · 4336 阅读 · 1 评论 -
HDU2067 小兔的棋盘(DP)
网上看到说这题还能用卡特兰数解,有兴趣的可以取搜搜。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2067题意:给出一个矩阵,不能穿越对角线,但可以触碰到,问从a[1][1] 走到 a[n][n]又多少种方法。分析:我们首先考虑a[n][n],a[n][n]可以从a[n-1][n]和a[n][n-1]两种状态得到,但是因为不能穿越...原创 2019-07-30 21:02:23 · 253 阅读 · 0 评论 -
codeforces Round #574(Div.2) Problem-C. Basketball Exercise(DP)
题目链接:http://codeforces.com/contest/1195/problem/C题意:有两排人每排n个,从左到右为1 - n, 然后从中选出任意个人,但是又一定的规则1.连续的两个人不能再同一行2.下一个人的下标一定要比前一个大问能选出来的人的身高最多又多大?分析:典型的动态规划,我们把在每一列选或者不选看作一种状态,那么这种状态又三种情...原创 2019-07-19 18:58:47 · 234 阅读 · 0 评论 -
HDU2059 龟兔赛跑(多决策的动态规划)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2059分析:兔子跑完全部路程的时间是定值,主要看乌龟如何走完全程,且用时最短。用这个最短的时间和兔子的时间相比。首先我们可以把起点和终点都当作充电站,这样一共就有n+2个充电站,特殊情况是起点的充电站给车子充满电是不需要时间的,所以这个情况需要特判一下就是dp[0] = 0. 我们最终的目标...原创 2019-07-18 13:27:04 · 353 阅读 · 0 评论 -
简单动态规划-数塔问题变形
寒假前几天有些懈怠,今深刻反思。协会留的作业之一, 虽然一眼就看出了是一个动态规划问题,但是还是因为格式问题困扰好久,主要原因还是自己有些懈怠了做题有些不熟练。要好好反思一下了。问题描述:有 m 颗质量大小不同的石子,从最下面一层开始堆石子,最下面一层放置 n 颗石子,每层减少一颗石子,恰好到最上一层为 一颗 石子。现在从最下面一层开始每层石子中取出一颗石子(注意,为了方便取出,要...原创 2019-01-28 14:54:21 · 258 阅读 · 0 评论 -
最长递增子序列 51nod 1134
题目:给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。Input第1行:1个数N,N为序列的长度(2 <= N <= 50000) 第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= Sii <= 10^9)Outp...原创 2018-09-05 15:58:32 · 177 阅读 · 0 评论 -
动态规划之背包问题(待完善)
题目训练(密码hpuacm):https://vjudge.net/contest/244922背包问题有 部分背包 01背包 完全背包 多重背包部分背包是一种可分割的背包,就是一个背包我们可以只取它的部分。那么给出一组物品的价值和重量,怎么选才能让背包装的价值最大呢?很简单,选性价比最高的,即优先选择的是单位重量价值(v[i] / w[i])最高的那个。01背包就很熟悉了,就是给出一...原创 2018-08-08 22:17:36 · 237 阅读 · 0 评论 -
最大子段和问题
最大子段和 N个整数组成的序列a11,a22,a33,…,ann, 求该序列如aii+ai+1i+1+…+ajj的连续子段和的最大值。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。Input第1行:整数序列...原创 2018-08-07 23:09:20 · 876 阅读 · 2 评论 -
动态规划之钱币兑换问题
钱币兑换问题 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。Input每行只有一个正整数N,N小于32768。Output对应每个输入,输出兑换方法数。Sample Input293412553Sampl...原创 2018-08-07 23:02:55 · 9149 阅读 · 1 评论 -
动态规划入门(超详细整理)
题目链接(密码hpuacm):2018HPU暑期集训—动态规划入门看故事了解动态规划思想:click here!!!求解动态规划问题求到最后无非就三种方法,见我之前的博文用三中方法详细讲解了01背包问题。第一种递归搜索法:https://blog.csdn.net/hpu2022/article/details/80741681第二种递归搜索法+记忆:https://bl...原创 2018-08-07 21:03:29 · 16441 阅读 · 1 评论 -
记忆化搜索+树形DP初接触(滑雪)( Anniversary party)
题目训练网址(密码hpuacm): https://vjudge.net/contest/245538其实我之前的博文已经提到过一次记忆化搜索关于01背包的: 文章链接对于记忆化搜索其实很好理解。就是每次DFS得到的结果用一个用来记忆值的数组保存。直接来看一道题目更好理解。 滑雪Micha...原创 2018-08-10 21:26:02 · 276 阅读 · 0 评论 -
o1背包dp递推式法
实例参考搜索法文章#include <bits/stdc++.h>#define MAXN 100using namespace std;int n, MaxValue;int w[MAXN+1], v[MAXN+1];int dp[MAXN+1][MAXN+1];int main(){ memset(dp, 0, sizeof(dp)); scanf("%d",...原创 2018-06-20 17:03:53 · 1384 阅读 · 0 评论 -
01背包记忆搜索法(dp)(递归法)
实例参考上一篇文章。#include <cstdio>#include <algorithm>#include <string.h>#define MAXN 100using namespace std;int n, MaxWeigh;int w[MAXN+1], v[MAXN+1];int dp[MAXN+1][MAXN+1]; //记忆数组...原创 2018-06-20 14:40:08 · 1454 阅读 · 0 评论 -
01背包搜索法
详情参考挑战程序设计第二版(有改动)。问题描述: 有n个重量和价值分别为 wi,vi 的物品。从这些物品中挑选出总重量不超过MaxValue的物品,求所有挑选方案中价值总和的最大值。限制条件: 1 <= n <= 100 1 <= wi, vi <= 100 1 <= MaxValue <= 10000输入: 4 2 ...原创 2018-06-20 09:37:07 · 3049 阅读 · 0 评论 -
01背包问题2(转换dp对象)
#include <bits/stdc++.h>#define MAX_N 100#define MAX_V 100#define INF 100000000using namespace std;int n, W;int w[MAX_N+1];int v[MAX_V+1];int dp[MAX_N+1][MAX_N*MAX_V+1];int main(){ s...原创 2018-06-23 11:56:07 · 235 阅读 · 0 评论 -
dp动态规划—完全背包问题
问题描述: 有n种重量和价值分别为wi, vi 的物品。从这些物品中挑选总重量不超过MaxValue的物品,求挑选物品价值总和的最大值。在这里,每种物品可以挑选任意多件。限制条件: 1 <= n <= 100 , 1 <= wi, vi <= 100 , 1 <= MaxValue <= 10000输入:33 44 52 37输出:10...原创 2018-06-22 08:17:52 · 367 阅读 · 1 评论 -
最长公共子序列问题
#include <cstdio>#include <algorithm>#define MAXN 1000using namespace std;int n, m;char s[MAXN+1], t[MAXN+1];int dp[MAXN+1][MAXN+1];int main(){ scanf("%d%d", &n, &m ); s...原创 2018-06-21 15:48:10 · 159 阅读 · 0 评论