动态规划
动态规划练习题
夏微凉.
第十五届蓝桥杯JavaB组国一,阿里云专家博主, 大三在读学生,计算机科学与技术专业,热爱编程和分享知识,欢迎一起交流和学习~
展开
-
[蓝桥杯 2020 省 AB1] 走方格——动态规划
这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。现在有个人站在第 1 行第 1列,要走到第 n 行第 m 列。只能向右或者向下走。蓝桥杯 2020 第一轮省赛 A 组 G 题(B 组 H 题)。注意,如果行号和列数都是偶数,不能走入这一格中。输入一行包含两个整数 n,m。在平面上有一些二维的点阵。输出一个整数,表示答案。原创 2023-03-02 11:28:51 · 279 阅读 · 0 评论 -
动态规划——糖果
由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。Dzx的选择是2+3+4+5=14,这样糖果总数是7的倍数,并且是总数最多的选择。的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。个整数,表示糖果公司该件产品中包含的糖果数目,不超过。当然,在满足这一条件的基础上,糖果总数越多越好。符合要求的最多能达到的糖果总数,如果不能达到。注意:Dzx只能将糖果公司的产品整件带走。Dzx希望他选择的产品包含的糖果总数是。的倍数这一要求,输出。原创 2023-02-27 20:26:29 · 383 阅读 · 5 评论 -
动态规划题:夺宝奇兵
夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5->7->8->3->7的顺序,将得到最大值30。接下来有N行非负整数,第i行有i个整数(11),表示山的高度。:动态规划,代码运行效率高,空间复杂度比上面的代码大。:“我为人人 ”型递推,空间复杂度比方法三更低。:递归函数,使用这种方法代码运行效率很低。:“人人为我”型递推。原创 2023-02-03 15:56:23 · 170 阅读 · 0 评论 -
动态规划:分组背包问题
有 N组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vi j,价值是 wi j,其中 i是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。第一行有两个整数 N,V用空格隔开,分别表示物品组数和背包容量。接下来有 N组数据:每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;每组数据接下来有 Si 行,每行有两个整数 vi j, wi j,用空格隔开,分别表示第 i 个物品组的第 j 个物品原创 2023-02-16 13:23:36 · 70 阅读 · 0 评论 -
动态规划:完全背包问题
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。完全背包中第二层循环中的j是自加的,01背包中第二层循环中的j是自减的。,用空格隔开,分别表示物品种数和背包容积。的背包,每种物品都有无限件可用。输出一个整数,表示最大价值。,用空格隔开,分别表示第。种物品的体积和价值。原创 2023-02-15 21:33:14 · 345 阅读 · 0 评论 -
动态规划:01背包问题
给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。以后N行每行两个数Wi和Vi,表示物品的重量和价值。输出1行,包含一个整数,表示最大价值。原创 2023-02-15 11:20:14 · 99 阅读 · 0 评论 -
动态规划:多重背包问题
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。,用空格隔开,分别表示物品种数和背包容积。种物品的体积、价值和数量。输出一个整数,表示最大价值。,用空格隔开,分别表示第。原创 2023-02-16 12:17:11 · 320 阅读 · 0 评论 -
线性DP:最长上升(下降)子序列
但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。第二行,输入k个正整数,表示k枚导弹的高度,按来袭导弹的袭击时间顺序给出,以空格分隔。第一行,输入雷达捕捉到的敌国导弹的数量k(k原创 2023-02-18 20:56:02 · 106 阅读 · 0 评论 -
区间DP:合并石子
每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为1352,我们可以先合并1、 2堆,代价为4,得到452,又合并1, 2堆,代价为9,得到。如果第二步是先合并2,3堆,则代价为7,得到47,最后一次合并代价为11, 总代价为4+7+11=22。设有N堆石子排成一排,其编号为1, 2, 3, ... N。问题是:找出一种合理的方法,使总的代价最小,输出最小代价。输出一个整数,表示最小代价。原创 2023-02-19 16:40:11 · 127 阅读 · 0 评论 -
动态规划:鸣人的影分身
分配方案不考虑顺序,例如:M=7,N=3,那么 (2,2,3)和 (2,3,2)被视为同一种方案。针对不同的作战情况,鸣人可以选择制造出各种强度的影分身,有的用来佯攻,有的用来发起致命一击。我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。在火影忍者的世界里,令敌人捉摸不透是非常关键的。,那么制造影分身时有多少种不同的分配方法?,用一行输出分配的方法数。,他影分身的个数最多为。以下每行均包含二个整数。原创 2023-02-27 19:13:29 · 731 阅读 · 0 评论
分享