zoukankan      html  css  js  c++  java
  • 模拟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{inom{cnt_i}{2}}{inom{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$处匹配就好了。

  • 相关阅读:
    总结oninput、onchange与onpropertychange事件的用法和区别,onchange
    即时反应的input和propertychange方法
    响应式网页
    angularJS问题集结
    网页边框样式与style样式部分总结
    软件工程问题及回答
    第13章到第17章问题
    《构建之法》第10、11、12章
    《构建之法》第8,9,10章
    [css]等高列的简单实现
  • 原文地址:https://www.cnblogs.com/skyh/p/11832841.html
Copyright © 2011-2022 走看看