「SCOI2009」游戏 - DP,线性筛,置换

对于一个长度为 n n 的序列 A A ,记其置换集合为 G G ,对于 fG f \in G ,记使得 的嵌套次数为其排数,求对于所有 fG f \in G 共有多少种不同的排数。

「SCOI2009」生日快乐

现有一块长为 X X ,宽为 Y Y 的蛋糕,切 N1 N - 1 刀,分成 N N 块,在保证每块蛋糕面积相等的前提下使得 N N 块切好的蛋糕长边比短边的最大值最小,求这个最小值。

「SHOI2008」循环的债务 - DP

A,B,C 三个人之间互相有一些债务,每个人有面值为 1,5,10,20,50,100 1, 5, 10, 20, 50, 100 的钞票若干,求出他们之间钞票交换次数最少的交换方式。

「SHOI2008」汉诺塔 - DP

A,B,C A, B, C 分别表示汉诺塔问题中的三根柱子。

用两个字母描述一个操作,例如 AB 就是把柱子 A A 最上面圆盘挪动到柱子 B B 上。

我们为所有的 6 6 种操作赋予一个优先级,并且利用以下规则进行游戏:

  1. 选择一种操作,这种操作是所有合法操作中优先级最高的。
  2. 本次操作需要移动的圆盘不是上一次操作移动的圆盘。

可以证明,上述策略一定能完成汉诺塔游戏。 计算给定操作优先级时将 A A 柱子上的 n n 个圆盘全部移动到另一根上所需的操作数。

「SHOI2008」堵塞的交通 - 线段树

在一个有 2C 2C 个点,3C2 3C - 2 条边的 2 2 C C 列的网格图中,相邻两个节点有连边,给定以下三种操作。

  1. Open r1 c1 r2 c2 连接节点 (r1, c1), (r2, c2) 的边连通。
  2. Close r1 c1 r2 c2 连接节点 (r1, c1), (r2, c2) 的边断开。
  3. Ask r1 c1 r2 c2 查询节点 (r1, c1), (r2, c2) 之间的连通性。

开始时每条边都是断开的状态。

「JSOI2008」魔兽地图 - 树形DP,多重背包

给定 n n 件物品,m m 个金币,每个物品有自己的价值。低级物品可以直接购买,高级物品需要若干件较低级的物品来合成,并且具有合成的数量限制,求能够获得的最大价值。

「Codeforces Round 416 (Div. 2)」 C - DP

给定一个序列,每个位置上有一种颜色,要求把这个序列分成可以不连续的若干段,所有颜色相同的要么全部不选要么全部分到一段中,最终选取出的每一段的价值等于段中不同颜色编号的异或和,求最大价值。