
dp
han_hhh
这个作者很懒,什么都没留下…
展开
-
合唱队形【北京大学复试机试题】【最长递增子序列】
求以a[i]结尾的最长递增子序列长度dp1[i],和以a[i]开头的最长递减子序列dp2[i],将这两个长度相加-1,即是最后的合唱队列的长度,找出和昌队列最长的一个a[i],也可以求出需要多少同学出列#include<iostream>#include<climits>using namespace std;const int MAXN=101;int a[MAXN];int dp1[MAXN]; //dp1[i]表示以a[i]结尾的最长递增子序列 int dp原创 2020-08-21 09:57:21 · 202 阅读 · 0 评论 -
Common Subsequence HDU-1159【最长公共子序列】
dp[i][j]=dp[i-1][j-1]+1; s1[i]==s2[j]dp[i][j]=max(dp[i-1][j],dp[i][j-1]) s1[i]!=s2[j]注意几个小技巧:scanf("%s%s",s1+1,s2+1):从下标1开始输入,泽阳可以便于处理边界的情况int len1=strlen(s1+1); 长度也是从下标1开始算起#include<iostream>#include<cstring> //strlen #...原创 2020-08-21 12:06:54 · 163 阅读 · 0 评论 -
整数拆分【清华大学复试机试题】【动态规划】
题目描述一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有六种不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。 用f(n)表示n的不同拆分的种数,例如f(7)=6. 要求编写程序,读入n(不超过1000000),输出f(n)%1000000000。输入描述:每组输入包括一个整数:N(1原创 2020-09-07 14:19:59 · 357 阅读 · 0 评论 -
放苹果【北大复试机试题】【动态规划】
题目描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入描述:每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出描述:对输入的每组数据M和N,用一行输出相应的K。示例1输入复制17 3输出复制8思路:dp[i][j]表示把前i个苹果放入j个盘子的方案数。边界:dp[0][i]=1刚开始每个盘子里都是0个苹果,这...原创 2020-09-07 12:45:18 · 202 阅读 · 0 评论 -
Monkey Banana Problem LightOJ - 1004【动态规划】
You are in the world of mathematics to solve the great "Monkey Banana Problem". It states that, a monkey enters into a diamond shaped two dimensional array and can jump in any of the adjacent cells down from its current position (see figure). While moving原创 2020-09-06 23:08:55 · 226 阅读 · 0 评论 -
珍惜现在,感恩生活 HDU - 2191 【多重背包】
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一个充满了变数的生命过程,天灾、人祸、病痛是我们生命历程中不可预知的威胁。月有阴晴圆缺,人有旦夕祸福,未来对于我们而言是一个未知数。那么,我们要做的就应该是珍惜现在,感恩生活——感谢父母,他们给予我原创 2020-09-06 18:10:31 · 151 阅读 · 0 评论 -
最小邮票数【清华大学复试机试题】【01背包】
题目描述 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。输入描述: 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。输出描述: 对于每组数据,能够凑成总值M的最少邮票张数。若无解,输出0。示例1输入复...原创 2020-08-24 10:41:00 · 220 阅读 · 0 评论 -
点菜问题【北京大学复试机试题】【0-1背包】
题目描述 北大网络实验室经常有活动需要叫外卖,但是每次叫外卖的报销经费的总额最大为C元,有N种菜可以点,经过长时间的点菜,网络实验室对于每种菜i都有一个量化的评价分数(表示这个菜可口程度),为Vi,每种菜的价格为Pi, 问如何选择各种菜,使得在报销额度范围内能使点到的菜的总评价分数最大。 注意:由于需要营养多样化,每种菜只能点一次。输入描述: 输入的第一行有两个整数C(1 <= C <= 1000)和N(1 <= N <= 100),C代表总共能够报...原创 2020-08-21 15:04:44 · 710 阅读 · 0 评论 -
算法训练 K好数
这道题,我先看到它是动态规划,然后就去复习了一下动态规划,再回来看这道题依然不清楚,懒得思考我又去搜题解了。然后我看到一个博主题解前边写的话……我自己做!自己做还不行嘛然后就想出来了……我以后也要认认真真做题!!真是太浮躁了dp[i][j]表示第i为j的个数状态转换方程#include<iostream>#include<cmath>u...原创 2020-02-24 17:57:41 · 252 阅读 · 0 评论 -
Common Subsequence【 POJ -1458】
动态规划思想dp[i][j]表示字符串s1的前i位和字符串s2的前j位的最大公共子串和状态转移方程#include<iostream>#include<string>#include<cstring>using namespace std;int dp[1005][1005];int main(){ string s1,s2; ...原创 2020-02-24 21:20:20 · 131 阅读 · 0 评论 -
找零钱问题【动态规划】【python】
问题描述设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱,可以实用的各种面值的硬币个数不限。当只用硬币面值T[1],T[2],…,T[i]时,可找出钱数j的最少硬币个数记为C(i,j)。若只用这些硬币面值,找不出钱数j时,记C(i,j)=∞。«编程任务设计一个动态规划算法,对1≤j≤L,计算出所有的C( n,j )。算法中只允许实用一个长度为L的...原创 2019-07-11 10:10:30 · 3680 阅读 · 0 评论 -
0-1背包问题【动态规划】【python】
i为物品索引,X为背包中的剩余容量1)物品i不放入背包中,解等于从0,1,2 … i-1选取容量为X的物品价值,也就是Knapsack( i , X ) = Knapsack( i-1 , X )2)物品i 放入背包中,Knapsack( i , X )的解等于剩余物品 0,1,2 … i-1中选择放入容量为 X-si 的包中的价值+物品i 的价值 vi,也就是Knapsack...原创 2019-07-03 22:25:43 · 829 阅读 · 0 评论 -
连续子序列和的最大值【动态规划】【python】
如题因为要求的是连续子序列和的最大值,所以分类应为c[i]要不要i之前的序列对于第i个元素,1)要i之前的序列,则table[i1]+c[i]2)不要i之前的序列,则c[i]取两者里边的最大值给了table[i]numpy.argmax(list) :返回列表中最大元素的索引详解argmaxdef bottom_up_seque(c): lent...原创 2019-07-03 21:45:49 · 1570 阅读 · 0 评论 -
捡拾硬币 【动态规划】【python】
假设有n个硬币排在一行,要求不能拾取相邻的两个硬币,已获得累加面值最大的拾取子序列动态规划对于第i个硬币,1)拾取第i个硬币,则table[i-2]+c[i]2)不拾取第i个硬币,则table[i-1]取两者里边的最大值给了table[i](一直都没有给列表分配存储空间的习惯,以为python里边不需要来着)补充一点列表逆序输出的知识:list[::-1] ...原创 2019-07-03 19:50:32 · 1508 阅读 · 0 评论 -
Aizu - ALDS1_10_C Longest Common Subsequence【dp】
For given two sequencesXXandYY, a sequenceZZis a common subsequence ofXXandYYifZZis a subsequence of bothXXandYY. For example, ifX={a,b,c,b,d,a,b}X={a,b,c,b,d,a,b}andY={b,d,c,a,b,a}Y={...原创 2019-03-19 11:09:46 · 274 阅读 · 0 评论 -
Aizu - ALDS1_5_A Exhaustive Search 【dp】
Write a program which reads a sequenceAofnelements and an integerM, and outputs "yes" if you can makeMby adding elements inA, otherwise "no". You can use an element only once.You are given t...原创 2019-03-19 09:27:55 · 533 阅读 · 0 评论 -
Aizu - ALDS1_10_B Matrix Chain Multiplication 【dp】
题目大意:给出矩阵个数n,接下来的n行输入每个矩阵的行和列。最后输出n个矩阵相乘所需标量相乘最小次数区间dpl代表当前操作的矩阵个数,例如M1M2对应l为2,M2M3M4对应l为3;l从2到n用M[i][j]来表示从第i个矩阵乘到第j个矩阵的成本数(即题目要求的标量相乘的次数)。当i=j时,M[i][j]=0;当i!=j时,M[i][j]=min(M[i][k]+M[k+1][...原创 2019-03-20 19:08:37 · 237 阅读 · 0 评论