• 模拟78 题解


    A. 串串香

    送分题。

    发现用$kmp$复杂度也是$O(n)$,和直接哈希的复杂度是一样的。

    所以直接双模哈希硬干就完了。

    B. 糊涂图

    在不加边的情况下,因为存在拓扑序,问题是简单的。

    所以可以先处理出不加边情况下,每个点达哥获胜的概率,其实这个数组也表示走奇数步后无路可走的概率,设为$f_i$。

    显然有$f_i=frac{sum (1-f[to])}{out_i}$,可以在拓扑序的倒序上简单递推。

    考虑当前加边$(i,j)$。

    那么可以将达哥获胜的概率拆分为:

    1.经过点$i$并且走向$j$获胜的概率,

    2.经过点$i$并且不走向$j$获胜的概率,

    3.不经过点$i$获胜的概率。

    那么当前已经关注从起点走到$i$的概率。

    注意这里关注的其实是从起点到$i$走偶数步和奇数步分别的概率,因为达哥和B哥无名氏对应着不同的结果。

    设上述两个数组分别为$p0_i$和$p1_i$,均可以在拓扑序的正序上简单递推。

    处理出这三个数组,已经可以暴力推答案。

    仍然考虑当前加边$(i,j)$

    设$h$为达哥的第三部分胜率,有$h=f_s-f_i*p0_i-(1-f_i)*p1_i$

    设$F$表示走到$i$之后奇数步后无路可走的概率,有$F=frac{out_i}{out_i+1}*f_i+frac{1}{out_i+1}*(1-f_j)$

    那么$ans=p0_i*F+p1_i*(1-F)+h$

    推一推式子,可以把其中关于$j$的项移出来。

    于是枚举$i$就可以统计出平均数和最大值。

    C. 木叶下

    手玩可以发现一些性质:

    当不存在环,答案为树的直径除二向下取整再加一。

    当存在环,答案为环上伸出的最长链。

    首先预处理出需要的最长链,

    然后分类讨论:

    在$1$为根的树上$u$,$v$是祖先关系。那么$u$ $v$需要特判,中间只访问除父链和子链。

    在$1$为根的树上$u$,$v$的$dfs$序无交集。那么$u$ $v$ $lca$需要特判,中间只访问除父链和子链。

    所以用一个倍增数组维护链上的最值,端点特判就可以了。

  • 相关阅读:
    四种会话跟踪技术的对比
    【转载】.NET中使用Redis
    【转载】Windows平台下利用APM来做负载均衡方案
    【转载】Windows平台分布式架构实践
    MVC插件式开发平台
    如何用JS和HTML 做一个桌面炒股小插件【原创】
    如果用HTML5做一个在线视频聊天【原创】
    BraveOS正式版发布,希望大家下载使用
    短期将不再更新更多内容,见谅!
    打造自己的移动绿色版 Python 环境
  • 原文地址:https://www.cnblogs.com/skyh/p/11699889.html
Copyright © 2020-2023  润新知