最长上升子序列模型
1. 最长上升子序列
1.1 怪盗基德的滑翔伞
(左端点到任意点的上升子序列 / 右端点到任意点的上升子序列)
1.1.1 登山
(左端点到任意点的上升子序列 + 右端点到同一点的上升子序列)
1.1.2 合唱队形
(同登山,左端点到任意点的上升子序列 + 右端点到同一点的上升子序列)
1.2 友好城市
(先排序,后上升子序列)
1.3 最长上升子序列和
(最长上升子序列的长度 更改为 数值之和)
1.4 导弹拦截
(一道系统所能拦截导弹的最多数量:最长上升子序列)
(拦截所有导弹所需的系统数:贪心+最长上升子序列)
1.4.1 导弹防御系统
(上升系统 /下降系统:DFS暴搜 + 最长上升子序列)
1.5 最长公共上升子序列
(公共子序列+上升子序列)
背包模型
2.1 01 背包
(每个物品只能选择一次)
应用:采药+装箱问题+数字组合
应用:能量石
(贪心,排序,池底啊能量是所花时间,所得能量,耗损能量)
2.2 完全背包
(每个物品有无限个)
应用:买书
(n元钱买书,买书方案?)
2.3 多重背包1 2 3
(每个物品有有限s个)(朴素版,二进制优化/打包,单调队列)
应用:庆功会
(购买奖品的价格、价值,拨款金额)
2.4 二维背包
(每个物品有两个约束条件 体积+重量)
2.5 分组背包
(同一组内的物品中最多只能选一个)
应用:机器分配
(总公司,分公司,盈利)
2.6 有依赖的背包问题
(树形结构,如果选择一个物品,则必须选择它的父结点)
2.7 背包问题求方案数
(输出最后选法的方案数)