
动态规划DP
小兔崽崽!
我还年轻!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1303: 点菜问题(动态规划)
题目描述北大网络实验室经常有活动需要叫外买,但是每次叫外买的报销经费的总额最大为C元,有N种菜可以点,经过长时间的点菜,网络实验室对于每种菜i都有一个量化的评价分数(表示这个菜可口程度),为Vi,每种菜的价格为Pi, 问如何选择各种菜,使得在报销额度范围内能使点到的菜的总评价分数最大。注意:由于需要营养多样化,每种菜只能点一次。输入输入的第一行有两个整数C(1 <= C <= ...原创 2019-07-28 16:37:40 · 1201 阅读 · 0 评论 -
P1757 通天之分组背包(动态规划 分组背包)
思路:这就是一个分组背包的模板题#include <bits/stdc++.h>using namespace std;int v,n,t;int x,tot=0;int g[205][205];int w[10010],z[10010],b[10010],dp[10010];int main(){ int v,n; cin>>v>>n; for(int i=1;i<=n;i++){ cin>>w[i].原创 2020-07-28 09:04:42 · 418 阅读 · 0 评论 -
0 1背包问题(动态规划)
背包问题该背包最大可以装20kg的物品,现在由5件商品重量和价格如上表所示,求出背包可以装下物品最大的价值#include<bits/stdc++.h>using namespace std;#define W 21#define N 6int b[N][W];int w[6]={0,2,3,4,5,9};//定义一个数组存每件物品的重量int v[6]={0,3,...原创 2019-09-21 10:18:17 · 174 阅读 · 0 评论 -
Common Subsequence(动态规划--最长公共子序列)lcs
这个题目就只是要我们求最长公共子序列的长度,我们只要知道动态规划的转移方程就可以写这道题。if(s1[i-1]!=s2[j-1]){ dp[i][j] = max(dp[i][j-1],dp[i-1][j]);}else { dp[i][j] = dp[i-1][j-1]+1;}代码如下:#include <bits/stdc++.h>using namespace std;int main(){ string s1,s2; while(原创 2020-07-23 16:12:40 · 149 阅读 · 0 评论 -
Super Jumping! Jumping! Jumping!(动态规划--非连续递上升列求和)
题意:多组输入,每次输入一个数的序列,然后要求我们去找里面最大的递增的序列的和,要注意的就是它要求的只是递增,不需要连续递增。方法就是用dp数组去找最大的值,dp[i]表示从第一个数到第i个数的最大递增的和,然后不断的去维护dp数组,最后遍历一遍dp数组找到其中的最大的值输出即可。#include <bits/stdc++.h>using namespace std;int dp[1010],a[1010];int n;int main(){ while(cin>&.原创 2020-07-23 15:45:47 · 183 阅读 · 0 评论 -
超级楼梯(动态规划)
Problem Description有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。Output对于每个测试实例,请输出不同走法的数量Sample Input223Sample Output...原创 2019-12-15 23:05:59 · 651 阅读 · 0 评论 -
P1164 小A点菜(01背包问题方案数)
uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。题目描述不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩MM元(M \le 10000)(M≤10000)。餐馆虽低端,但是菜品种类不少,有NN种(N \le 100)(N≤100),第ii种卖a_iai 元(a_i \le 10...原创 2019-12-15 22:35:36 · 271 阅读 · 0 评论 -
Monkey and Banana(动态规划dp 经典)
Problem DescriptionA group of researchers are designing an experiment to test the IQ of a monkey. They will hang a banana at the roof of a building, and at the mean time, provide the monkey with some...原创 2019-12-09 22:44:54 · 504 阅读 · 0 评论 -
发工资咯:)(完全背包,贪心)
Problem Description作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元...原创 2019-12-09 22:28:56 · 139 阅读 · 0 评论 -
Crisis of HDU(背包问题求方案数)
/Problem Description话说上回讲到HDU大战东洋小苟,结果自然是中方大胜,这一战也使得海东集团在全球同行业中的地位更加巩固。随着集团的发展,很多创业时期的元老逐步功成身退,先是8600移民海外,然后是linle夫妇退隐山林,逐渐的,最初众多的元老只剩下XHD夫妇和Wiskey三人了。到了2020年,因为扩张过度加上老鼠数量逐年减少,公司的发展遇到了前所未有的危机,此时集团已...原创 2019-11-29 19:24:53 · 183 阅读 · 0 评论 -
背包问题求方案数
import java.util.*;class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int V = sc.nextInt(); int[] volum...原创 2019-11-29 15:08:32 · 180 阅读 · 0 评论 -
P1507 NASA的食物计划(背包)
题目背景NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋,因此在各方压力下终止了航天飞机的历史,但是此类事情会不会在以后发生,谁也无法保证,在遇到这类航天问题时,解决方法也许只能让航天员出仓维修,但是多次的维修会消耗航天员大量的能量,因此NASA便想设计一种食品方案,让体积和承重有限的条件下多装载一些高卡路里的食物.题目描述航天飞机的体积有限,当然如果载过重的物品...原创 2019-11-06 19:23:11 · 152 阅读 · 0 评论 -
Max Sum(动态规划)
Problem DescriptionGiven a sequence a[1],a[2],a[3]…a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 1...原创 2019-11-06 00:03:46 · 335 阅读 · 0 评论 -
最大连续子段和(动态规划-线性递推动规 )
题目描述【问题】给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n例如,当(a1,a2,a3,a4,a4,a6)=(-2,11,-4,13,...原创 2019-07-30 09:39:27 · 642 阅读 · 0 评论 -
最大子段和
#include<iostream>using namespace std;int MaxSubsequenceSum(const int A[], int n){ int tempSum = 0; int maxSum = 0; for (int j = 0;j < n;j++) // 子问题后边界 { tempSum...原创 2019-08-21 01:12:47 · 113 阅读 · 0 评论 -
最优矩阵链乘 动态规划
void MatrixChain(int *p,int n,int **m,int **s){//m是最优值,s是最优值的断开点的索引,n为题目所给的矩阵的个数(下面例子中)//矩阵段长度为1,则m[][]中对角线的值为0,表示只有一个矩阵,没有相乘的.for(int i = 1; i<=n; i++) m[i][i] = 0;for(int r = 2; r<=n...原创 2019-10-14 17:06:29 · 407 阅读 · 0 评论 -
P1049 装箱问题(简单背包)
题目描述有一个箱子容量为V(正整数, 200000≤V≤20000),同时有nn个物品 300<n≤30,每个物品有一个体积(正整数)。要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入格式1个整数,表示箱子容量1个整数,表示有nn个物品接下来nn行,分别表示这nn个物品的各自体积输出格式1个整数,表示箱子剩余空间。输入输出样例输入 #1 复制246...原创 2019-10-14 00:18:48 · 152 阅读 · 0 评论 -
1192: 货币系统(背包)
[提交][状态][讨论版]题目描述给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。样例:设n=3,m=10,要求输入和输出的格式如下:输入第一行两个整数n,m(m<=5000)以下n行,每行一个整数,第i+1行为第i种货币的面值输出一个整数,为方案数样例输入3 10125样例输出10提示来源动态规划-背包问题#include<bits/...原创 2019-10-14 00:14:35 · 224 阅读 · 0 评论 -
1314: 珍惜现在,感恩生活(多重背包)
急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一个充满了变数的生命过程,天灾、人祸、病痛是我们生命历程中不可预知的威胁。月有阴晴圆缺,人有旦夕祸福,未来对于我们而言是一个未知数。那么,我们...原创 2019-10-11 20:37:40 · 170 阅读 · 0 评论 -
1042: 最长公共子序列(动态规划)
题目描述给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。例如:Z=<a,b,f,c>是序列X=<a,b,c,f,b,c>的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?输入输入包含多组测试数据。每组输入占一行...原创 2019-10-10 20:11:07 · 371 阅读 · 0 评论 -
1255: 数字三角形(动态规划入门)
题目描述数字三角形,从三角形顶部往下走,只能往左下或右下走,求走到最下面时所经过的数字和最大为多少?(下图为n=6时的情况)输入第1行:整数n(1<=n<=1000)第2-n+1行:每行若干整数,第i行有i-1个整数,空格分隔。输出一行:一个整数,表示所经过数字的最大和。样例输入6 2 96 30 83 52 60 21 65 44 ...原创 2019-07-31 08:21:22 · 1046 阅读 · 0 评论