模拟109 题解

A. Adore

似乎是显然的状压。

$dp_{i,S}$表示第$i$层,其中每个点到达终点路径条数的奇偶性为$S$的方案数。

直接用位运算转移,复杂度是$O(m*k*2^k)$,然后卡卡常(把$k$循环展开)就过了。

似乎考虑单次的变化量,可以继续消掉一个$k$,然后就好了。

 

 

 

B. Confess

手玩发现合法的状态一定很多,

所以直接随机集合对搞就好了。

实际上集合对的交的期望是很大的。

设$cnt_i$表示元素$i$出现的次数。

$$E=\sum \limits_{i=1}^{2*n}\frac{\binom{cnt_i}{2}}{\binom{n+1}{2}}$$

$$=\frac{\sum \limits_{i=1}^{2*n}cnt_i*(cnt_i-1)}{n*(n+1)}$$

上式在所有的$cnt_i$相等时取得最小值,即$cnt_i=\frac{n+1}{2}$。

所以上式$=\frac{n-1}{2}$。

然而答案只要求出集合交为$\frac{n}{2}$,实际上在随机情况下每次随机到的概率为$\frac{1}{2}$。

 

 

 

C. Repulsed

被原来做过的一道类似的贪心题思想钳制住了。

那道题的贪心思想是,每次取出深度最大的,

之后不断翻祖先,将可以覆盖到的点覆盖掉。

然而复杂度是$O(n^2)$的。

似乎这个贪心过程可以用$dfs$的方式解决。

$g_{x,i}$表示节点$x$,深度为$i$剩余的未匹配节点。

$f_{x,i}$表示节点$x$,深度为$i$处的灭火器还能匹配的节点个数。

在子树中匹配掉一定更优,所以贪心在$lca$处匹配就好了。

posted @ 2019-11-11 09:27  skyh  阅读(150)  评论(0编辑  收藏  举报