## 介绍
??? note " 例题[经典问题 - 多重背包](/dp/knapsack/#_3)"
- 题目大意:有 $n$ 种物品,每种物品有 $a_i$ 件,购买一件这种物品的费用为 $c_i$ ,价值为 $v_i$ 。有一个容量为 $t$ 的背包,现在让你找到最优的一种方案,使得装入背包的物品的总价值最大。
+ 题目大意:有 $n$ 种物品,每种物品有 $a_i$ 件,购买一件这种物品的费用为 $c_i$ ,价值为 $v_i$ 。有一个容量为 $t$ 的背包,现在让你找到最优的一种方案,使得装入背包的物品的总价值最大。
考虑常规的动规方式,定义 $f_{i,j}$ 为当前考虑到第 $i$ 个物品,背包容量为 $j$ 所能获得的最大价值。
学习本节前,请务必先学习[单调队列](/ds/monotonous-queue/)及[单调栈](/ds/monotonous-stack/)部分。
??? note " 例题[CF372C Watching Fireworks is Fun](http://codeforces.com/problemset/problem/372/C)"
- 题目大意:城镇中有 $n$ 个位置,有 $m$ 个烟花要放。第 $i$ 个烟花放出的时间记为 $t_i$ ,放出的位置记为 $a_i$ 。如果烟花放出的时候,你处在位置 $x$ ,那么你将收获 $b_i-|a_i-x|$ 点快乐值。
+ 题目大意:城镇中有 $n$ 个位置,有 $m$ 个烟花要放。第 $i$ 个烟花放出的时间记为 $t_i$ ,放出的位置记为 $a_i$ 。如果烟花放出的时候,你处在位置 $x$ ,那么你将收获 $b_i-|a_i-x|$ 点快乐值。
初始你可在任意位置,你每个单位时间可以移动不大于 $d$ 个单位距离。现在你需要最大化你能获得的快乐值。
## 例题选讲
??? note " 例题[「HNOI2008」玩具装箱 TOY](https://www.lydsy.com/JudgeOnline/problem.php?id=1010)"
- 令 $f_i$ 表示前 $i$ 个物品,随意分组装在任意多个容器里所能得到的最小费用。
+ 令 $f_i$ 表示前 $i$ 个物品,随意分组装在任意多个容器里所能得到的最小费用。
写出 **状态转移方程** : $f_i=\min\{f_j+(pre_i-pre_j+i-j-1-L)^2\}$ ,其中 $pre_i$ 表示前 $i$ 个数的前缀和。
毫无疑问,对动作的重复是提高效率最直接的办法,也是对效率最直接的反映。接下来我将依次介绍 Vim 的<kbd>.</kbd>命令,简单的录制与重复宏与 `normal` 命令。
-##### 自行车——。命令
+##### 自行车——`.`命令
当你使用 Vim 的时候,对于重复的文本修改其实内心是绝望的,因为 Vim 注定比其他编辑器会多出两个键的按键——<kbd>Esc</kbd>与<kbd>i</kbd>。就像走路的时候别人都是迈步子,但是你一定要跳一下再走一步,这种重复令人十分烦躁与无奈。这可以说是一个致命的缺点,但是,Vim 其实为我们提供了一台“自行车”—— `.` 命令。它令我们能直接不用迈步落步,只要往下踩就好了。
可以访问[TUNA 的页面](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/)来获得国内源的信息。
???+ warning
- \*\* 请在页面中寻找与自己系统版本相配的源(可使用 `sudo lsb_release -a` 查看,具体详见 `0x03` )
-
-\*\* 除非你知道你在做什么,否则不要使用与自己的系统版本不匹配的源!\*\*
+ **请在页面中寻找与自己系统版本相配的源(可使用 `sudo lsb_release -a` 查看,具体详见 `0x03` )**
+ **除非你知道你在做什么,否则不要使用与自己的系统版本不匹配的源!**
使用的命令