题目出处是 BNU 2013 校赛
http://www.bnuoj.com/bnuoj/contest_show.php?cid=1605
A、
模拟
B、
简单背包。注意每桶油能被选中多次
C、
L 和 H 是独立的,最后答案和 L, H 能被 2 整除多少次有关
D、
建立 Trie 树,记录每个子树的大小和子树中 word 结尾的个数,然后 DFS。
注意考虑两个 word 包含的情况
E、
不会
F、
(不会推 O(n) 的公式。。
先推 N^2 的公式
P[i][j] 和 E[i][j] 分别表示前 i 个当前有 j 个连击的概率和期望
转移是
P[i][j] = P[i - 1][j - 1] * p, P[i][0] = (1 - p)
E[i][j] = E[i - 1][j - 1] + j, E[i][0] = Σ P[i - 1][j] * E[i - 1[j]
最后答案是 E[n + 1][0]
测试几组数据后可以找到很明显的规律。。然后就可以 O(n) 了
G、
不会
H、
期望递推,E(n + 1) = 2 * (1 - 2 * p * q) + (E(n) + 2) * (2 * p * q)
I、
先读题,发现读不懂。折半搜索可以直接过,完全用不到 v。
不过这么做总感觉少了点啥。。不管了。
J、
阶段性很明显,dp[i][j] 表示前 i 个数中,j = 1, 2, 3, 4 分别表示 减第一个,加第二个,减第三个,加第四个 的最大值
K、
先考虑正常的 DP,dp[i][j] 表示到第 i 列,第 j 行的概率;然后用矩阵加速
L、
先考虑特殊情况,a = 0 或 b = 0;然后分为考虑截出三角形和梯形的情况