动态规划专题

动态规划专题

冲刺 noip 800 分,41 秒切 T1234

  • A:Helping People

    抽象题。

    发现区间只有不交与包含,可以想到建树(其实不太可以。

    因为期望 \(max\)\(max\) 期望不是一个东西,又发现 \(q\) 十分小,所以直接设 \(dp_{i,j}\) 表示到节点 \(i\) 最大值增加了 \(\le j\) 的概率,\(q^2\) 转移即可。

  • B:Birds

    智障题。

    发现魔力很大但总鸟数很小,直接设 \(dp_{i,j}\) 表示到第 \(i\) 棵树抓了 \(j\) 只鸟的最大剩余魔力,直接转移就好了。

    Vjudge 上图片挂了,没有 \(\sum c_i \le 10^4\)。。。

  • C:Positions in Permutations

    二项式反演板子。

    考虑求至少,设 \(dp_{i,j,1/0,1/0}\) 表示到第 \(i\) 位,钦定了 \(j\) 个,因为转移与 \(i+1,i-1\) 是否选了有关,所以压两位表示 \(i,i+1\) 是否选了。

    考虑第 \(i\) 位是否钦定转移即可,最后乘上没钦定的全排在反演即可。

  • E:Bear and Cavalry

    结论题。

    先考虑没有限制,贪心排序即可。

    有限制可以直接排序后 \(n^2\) 转移。

    发现结论,最后的匹配一定可以变成一堆长度不超过三的块,两两之间没有联系。

    于是有了 \(O(n)\) 转移,\(nq\) 卡常可过。

    优秀的 OIer 不能只会暴力卡常。

    发现转移可以矩阵维护,\(max\)\(+\) 组成的矩阵也满足结合律,单次最多只会修改 9 个矩阵。

    线段树维护单点改区间乘即可。

    也可以分块,块内暴力改,块间枚举合并。

  • F:ZS Shuffles Cards

    首先因为只能抽到 \(joker\) 才结束。

    所以可以用 \(期望轮数\times 每轮期望次数\)

    期望轮数直接 \(dp\),设 \(dp_i\) 表示集合内有 \(i\) 个元素期望轮数,发现已经抽过的完全没意义,所以有 \(\frac{m}{m+i}\)\(joker\),轮数加一,有 \(\frac{i}{m+i}\) 抽新牌,元素数加一。

    每轮期望次数可以递推,但考虑每张非 \(joker\) 放在 \(joker\) 前面的概率,期望其实就是 \(\frac{n}{m+1}+1\)

    相乘即可。

  • G:Future Failure

    虽然我没写,但丝毫不影响我胡

    考虑先手必胜的方案,容易发现当前状态重拍为偶数或长度为奇数时先手必胜,其他情况先手必败。

    考虑计数,因为先手必胜太麻烦,考虑容斥,求先手必败。

    对于 \(n\) 的重拍 \(\dfrac{n!}{\prod_{i} a_i!}\) 只有当:\(\sum a_i=n\)\(\bigoplus a_i=n\),然后记忆化搜索即可。

    搜索时可以钦定一个 \(a_i\) 单调递减,最后乘上非 \(0\) 的全排即可。

  • H:Tavas in Kansas

    把那两个人叫 A 和 B。

    先离散化。

    考虑 \(n^2\) dp。

    因为我们只关心分数大小,设 \(dp_{i,j,1/0}\) 表示当 A 选到距离为 \(i\),B 选到距离为 \(j\) 的分数差。

    把每个点到 A 和 B 的距离作为坐标,整到二维平面上来,就会变成两条直线扫扫扫,每次贡献就是矩阵和。

    因为有 sb 价值为 0 的点,所以要在开一个表示是否有点的二维平面。

    最后因为不知道是谁结束,所以倒序转移。

  • I:Game on Sum (Easy Version)

    先考虑设 \(dp_{i,j}\) 表示第 \(i\) 轮,第 \(j\) 次加。

    有转移:

    \[dp_{i,j}=\max\{\min(f_{i-1,j-1}+t,f_{i-1,j}-t)\} \]

    发现这就是两个一次函数,在 \(\frac{f_{i-1,j-1}+f_{i-1,j}}{2}\) 转移。

posted @ 2024-04-02 09:24  xrlong  阅读(8)  评论(0编辑  收藏  举报