摘要:
原题链接:https://www.luogu.com.cn/problem/P1874 题意解读:一个数字字符串s,分解成几个整数,和为n,计算最少加号个数,也就是计算最少分解的整数个数-1。 解题思路:此题虽然分类在动态规划,但数据量不大,DFS更加直观和易于理解,所以采用DFS暴搜+剪枝来解决。 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P4933 题意解读:求有多少个子序列可以组成等差序列 解题思路: 1、暴力DFS 如果实在想不出动规的方法,对于n<=20的数据,可以DFS枚举所有子序列的子集,再判断是否是等差数列。 30分代码: #include <b 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1725 题意解读:走过一系列格子之后,冰冻指数之和最大,相当于计算最大子序列的和。 解题思路: 设a[0~n]保存所有冰冻指数 设dp[i]表示以第i号格子为终点所能获得的最大冰冻指数 设j表示i的前一个格子,也就是从j 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P2285 题意解读:计算在地鼠出现的时间内能打到的最多的地鼠数量。 解题思路: 由于地鼠按时间出现,打到的地鼠序列一定是时间递增的,可以联想到最长上升子序列模型。 不妨设dp[i]表示以第i个地鼠结束的最多地鼠数量 参考最 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1020 题意解读:拦截系统发射导弹的高度依次不增,计算能拦截的最大导弹数以及需要几套拦截系统。 解题思路: 问题1:最多能拦截多少导弹? 由于发射导弹高度不增,所以求一个最长不增子序列即可得到最大拦截数。 方法一、O(n 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1064 题意解读:用固定钱数购买最大价值的物品。 解题思路: 背包问题,背包问题里的体积相当于物品价格,价值相当于价格 * 重要度 物品分为主件、附件,主件最多有0/1/2个附件,要选附件必须选相应主件, 因此在递推计算 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P3842 题意解读:计算1-n的最短路,且每行要覆盖线段。 解题思路: 既然要每行覆盖线段,那往下一行走时,必然是从线段的端点往下,有可能是从左端点往下,也有可能是从右端点往下。 当已知第i行,从1走到第i行的左端点且要覆 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1077 题意解读:n种花选m个的选法,每种花数量为ai。 解题思路: 设dp[i][j]表示前i种花选j个的选法 对于第i种花,可以选0,1,2...min(ai, j)个 则有递推式:dp[i][j] = ∑dp[i- 阅读全文
摘要:
参考:https://www.cnblogs.com/jcwy/p/18020487 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1616 题意解读:完全背包问题,时间可以当做背包体积。 解题思路:根据数据范围,m * t <= 10^7,可以用O(n^2)的算法,不能使用O(n^3),所以必须用一维dp 完全背包的一维代码和01背包基本类似,除了j 阅读全文