
线性dp
文章平均质量分 56
学习线性dp了兄弟
罚时大师月色
努力让更多小白和我一起共同进步,努力学习Java中!
展开
-
AcWing 1047. 糖果 背包问题
AcWing 1047. 糖果 由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。在这一天,Dzx可以从糖果公司的 N 件产品中任意选择若干件带回家享用。糖果公司的 N 件产品每件都包含数量不同的糖果。Dzx希望他选择的产品包含的糖果总数是 K 的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。当然,在满足这一条件的基础上,糖果总数越多越好。Dzx最多能带走多少糖果呢?注意:Dzx只能将糖果公司的产品整件带走。输入格式第原创 2021-02-27 20:14:58 · 507 阅读 · 0 评论 -
AcWing 1050. 鸣人的影分身 整数划分问题
AcWing 1050. 鸣人的影分身在火影忍者的世界里,令敌人捉摸不透是非常关键的。我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。针对不同的作战情况,鸣人可以选择制造出各种强度的影分身,有的用来佯攻,有的用来发起致命一击。那么问题来了,假设鸣人的查克拉能量为 M,他影分身的个数最多为 N,那么制造影分身时有多少种不同的分配方法?注意:影分身可以分配0点能量。分配方案不考虑顺序,例如:M原创 2021-02-27 18:44:29 · 163 阅读 · 0 评论 -
AcWing 1214. 波动数列 线性dp,类似于背包问题
[AcWing 1214. 波动数列](观察这个数列:1 3 0 2 -1 1 -2 …这个数列中后一项总是比前一项增加2或者减少3,且每一项都为整数。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种呢?输入格式共一行,包含四个整数 n,s,a,b,含义如前面所述。输出格式共一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以 100000007 的余数。数据范围1≤n≤1000,−109≤s原创 2021-02-26 19:53:38 · 1068 阅读 · 0 评论 -
AcWing 1212. 地宫取宝 四维线性dp
AcWing 1212. 地宫取宝X 国王有一个地宫宝库,是 n×m 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是 k 件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这 k 件宝贝。输入格式第一行 3 个原创 2021-02-26 17:32:00 · 247 阅读 · 1 评论 -
AcWing 899. 编辑距离
AcWing 899. 编辑距离给定n个长度不超过10的字符串以及m次询问,每次询问给出一个字符串和一个操作次数上限。对于每次询问,请你求出给定的n个字符串中有多少个字符串可以在上限操作次数内经过操作变成询问给出的字符串。每个对字符串进行的单个字符的插入、删除或替换算作一次操作。输入格式第一行包含两个整数n和m。接下来n行,每行包含一个字符串,表示给定的字符串。再接下来m行,每行包含一个字符串和一个整数,表示一次询问。字符串中只包含小写字母,且长度均不超过10。输出格式输出共m行,每行输原创 2021-02-22 10:40:45 · 471 阅读 · 0 评论 -
AcWing 902. 最短编辑距离 线性dp
AcWing 902. 最短编辑距离这道题是用线性dp就可以解决,在这之前,我先给大家介绍一下我们大名鼎鼎的闫氏dp首先我们要考虑状态表示,dp[i,j]表示a[1−-−i]变成b[1−-−j]的最小操作方案数,我们可以假设成dp[i,j]是成功把a[1~~i]变成b[1~j]的然后状态计算,删除操作是在i-1,j已经匹配上了,多了一个i,那么我们就把它删了,插入操作是指,i,j-1匹配上了,但是我们要匹配上i,j需要再加一个字母,如果a[i]==b[j]那么我们就不需要改了,就直接使用dp[i-1原创 2021-02-22 10:16:48 · 1090 阅读 · 3 评论 -
AcWing 312. 乌龟棋
线性dp枚举用了A,B,C,D张牌能走的最远距离。#include<iostream>#include<algorithm>using namespace std;const int N=360,M=41;int a[N],b[6],dp[M][M][M][M];int main(void){ int n,m; cin>>n>>m; for(int i=0;i<n;i++) cin>>a[i]; ..原创 2021-02-09 08:23:38 · 204 阅读 · 1 评论 -
AcWing 271. 杨老师的照相排列
输入样例13051 1 1 1 133 2 145 3 3 156 5 4 3 2215 150输出样例111641581418926089694845这道题相对来说,我第一次感受到了压力吧,这道题我也看出来要是dfs一定百分百超时,要用dp做,用dp又不知道思路,无敌的yxc老师来了!!!!https://www.acwing.com/video/397/yxc老师yyds讲的真很细首先分几种情况:把每一排的最后一个数(最大的数插进去的点)类似于.原创 2021-02-03 17:35:23 · 1916 阅读 · 3 评论