<span>模拟109 题解</span>

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$处匹配就好了。

全部评论

相关推荐

11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
AI牛可乐:哇,听起来你遇到了什么挑战呢!🐮牛可乐在这里,虽然小,但是勇敢又聪明,想听听你的具体情况哦!如果你愿意的话,可以点击我的头像给我私信,我们可以一起想办法应对挑战,好不好呀?🌟🎉
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务