dp 问题

Make It Ascending

相当于把数分组,每个组的和要单增,并且有一种分配方式使得每组的位置也单增。

\(f_{i,j,k}\) 为选的数为 \(i\),分为 \(j\) 组,总和为 \(k\) 的最小右端点,发现第三维太大,改为右端点为 \(k\) 的最小和。

状压有哪些数被选,枚举下一次选哪一些,利用位运算加速,复杂度 \(O(3^nn^2)\)

ZS Shuffles Cards

因为 \(E(一轮游戏抽牌数)\) 每轮相等,所以 \(E(结束时抽牌数)=E(游戏轮数)\times E(一轮游戏抽牌数)\)

首先是 \(E(一轮游戏抽牌数)\),考虑一张牌被抽到当且仅当它的前面没有鬼牌,概率是 \(\frac{1}{m+1}\),所以 \(E(一轮游戏抽牌数)=\frac{n}{m+1}+1\)

再算 \(E(游戏轮数)\),由于期望的线性性,\(E(游戏轮数)=\sum_{i=i}^n f_i\),其中 \(f_i\) 表示剩 \(i\) 张新牌时期望抽到一张新牌的轮数。

发现 \(f_i=\frac{m}{m+i}(f_i+1)\frac{i}{m+i}f_{i-1}\),解得 \(f_i=f_{i-1}+\frac{m}{i}\),而 \(f_1=\frac{1}{\frac{1}{m+1}}=m+1\),所以可以得到 \(E(游戏轮数)\)

Keep XOR Low

建出 Trie 树,考虑两个子树 \(a,b\) 相互制约的答案 \(f(a,b)\)

如果 \(d=0\),则答案是 \(f(a_0,b_0)+f(a_1,b_1)\),此外还有只在 \(a\) 中选和只在 \(b\) 中选的情况。

如果 \(d=1\),则答案是 \(f(a_0,b_1)\times f(a_1,b_0)\),因为只有这两种内有制约,并且互相独立。

2-Coloring

发现两种颜色的块的数目都 \(\le 2\),并且一定有一个 \(x=i\) 是左右两块的分界线,一块的交在上,一块的交在下,于是把合法轮廓线数转化为平面游走方案数,然后交换 \(x,y\) 轴算出另一种,注意第二次去重。

Bosco and Particle

字符串问题中有。

MEX counting

Weighted Increasing Subsequences

The Maximum Prefix

Doping

posted @ 2023-06-24 12:52  mikefeng  阅读(40)  评论(0)    收藏  举报