https://www.lydsy.com/JudgeOnline/problem.php?id=5461

看到题目,必将m种权值离散化。

首先是一个显然的dp设计。

设$f(i,j)$表示第i个节点,最终取值为j(已离散化)的概率。

因为树上的节点儿子数不超过2,不妨设值k出现在左儿子上。

则有$f(x,k)=f(ls,k)*(pmx_x*\sum \limits_{j=1}^{k-1}f(rs,j)+pmn_x*\sum \limits_{j=k+1}^{m}f(rs,j))$

初态是$f(leaf,val[leaf])=1$,答案直接对$f(1)$统计即可。

从实际含义上理解,正确性是显然的。

所以dp前预处理前缀和,可以做到$O(n^2)$。

因为树上情况比较特殊,加上保证只有不超过两个儿子,并不自然地想到了线段树合并。

如果是叶子,插入权值为1的节点。

否则进行两个儿子的线段树合并。

在线段树合并的同时,维护两棵线段树当前子树的前缀后缀和。

如果递归到其中一棵树为空,给另一棵树打上乘一个值的标记就可以了。

最后$dfs(root[1])$统计答案。

该题复杂度为$O(mlogn)$,

证明:

线段树合并复杂度等于$merge$函数调用次数。

$merge$函数调用一次,除非遇到(线段树上的)叶子节点,必定销毁一个节点。

并且,线段树是二叉树,

也就是说遇到的(线段树上的)叶子节点个数不会多于销毁的节点个数。

只在遇到(题中树上的)叶子节点时插入了$mlogn$个节点,故得证。

bzoj5461 Minimax 题解的更多相关文章

  1. LOJ2537:[PKUWC2018]Minimax——题解

    https://loj.ac/problem/2537 参考了本题在网上能找到的为数不多的题解. 以及我眼睛瞎没看到需要离散化,还有不开longlong见祖宗. ——————————————————— ...

  2. [PKUWC2018]Minimax 题解

    根据题意,若一个点有子节点,则给出权值:否则可以从子节点转移得来. 若没有子节点,则直接给出权值: 若只有一个子节点,则概率情况与该子节点完全相同: 若有两个子节点,则需要从两个子节点中进行转移. 如 ...

  3. loj#2537. 「PKUWC2018」Minimax

    题目链接 loj#2537. 「PKUWC2018」Minimax 题解 设\(f_{u,i}\)表示选取i的概率,l为u的左子节点,r为u的子节点 $f_{u,i} = f_{l,i}(p \sum ...

  4. BZOJ5461: [PKUWC2018]Minimax

    BZOJ5461: [PKUWC2018]Minimax https://lydsy.com/JudgeOnline/problem.php?id=5461 分析: 写出\(dp\)式子:$ f[x] ...

  5. 题解-PKUWC2018 Minimax

    Problem loj2537 Solution pkuwc2018最水的一题,要死要活调了一个多小时(1h59min) 我写这题不是因为它有多好,而是为了保持pkuwc2018的队形,与这题类似的有 ...

  6. [BZOJ5461][LOJ#2537[PKUWC2018]Minimax(概率DP+线段树合并)

    还是没有弄清楚线段树合并的时间复杂度是怎么保证的,就当是$O(m\log n)$吧. 这题有一个显然的DP,dp[i][j]表示节点i的值为j的概率,转移时维护前缀后缀和,将4项加起来就好了. 这个感 ...

  7. 「ZJOI2019」&「十二省联考 2019」题解索引

    「ZJOI2019」&「十二省联考 2019」题解索引 「ZJOI2019」 「ZJOI2019」线段树 「ZJOI2019」Minimax 搜索 「十二省联考 2019」 「十二省联考 20 ...

  8. ZJOI2019 Day1 题解

    想要继续向前,就从克服内心的恐惧开始. 麻将 题意 在麻将中,我们称点数连续的三张牌或三张点数一样的成为面子,称两张点数一样的牌为对子.一副十四张麻将牌的胡牌条件是可以分成四个面子和一个对子或者分成七 ...

  9. 【loj3044】【zjoi2019】Minimax

    题目 描述 ​ 给出一颗树,定义根节点1的深度为1,其他点深度为父亲深度+1: ​ 如下定义一个点的点权: ​ 1.叶子:为其编号:2.奇数深度:为其儿子编号最大值:3.偶数深度:为其儿子编号最小值: ...

随机推荐

  1. JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法)

    JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法) 一丶正则的用法 创建正则对象: 方式一: var reg=new ...

  2. Unity手游汉化笔记③:UABE替换BMFont

    总的笔记:https://www.cnblogs.com/guobaoxu/p/12055930.html 目录 一.Demo 二.分析思路 三.替换 四.总结 五.补充 工具: Unity版本:20 ...

  3. MongoDB 分片集群实战

    背景 在如今的互联网环境下,海量数据已随处可见并且还在不断增长,对于如何存储处理海量数据,比较常见的方法有两种: 垂直扩展:通过增加单台服务器的配置,例如使用更强悍的 CPU.更大的内存.更大容量的磁 ...

  4. pandas 之 数据合并

    import numpy as np import pandas as pd Data contained in pandas objects can be combined together in ...

  5. rest framework 之路由系统

    一.自定义路由 1.urls.py from django.conf.urls import url, include from web.views import s11_render urlpatt ...

  6. 转载_fread函数详解

    fread函数详解 函数原型: size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *strea ...

  7. Nginx 配置及参数详解

    Nginx 配置及参数详解 Nginx Location 指令语法 如下就是常用的 location 配置的语法格式,其中modifier是可选的,location_match就是制定 URI 应该去 ...

  8. saltstack--状态判断unless与onlyif

    saltstack状态判断unless与onlyif 很多时候我们在编写 state 文件时候需要进行判断,判断该目录或文件是否存在,判断该配置是否已经已添加,然后根据判断结果再决定命令或动作是否执行 ...

  9. vsftp部署

    安装 yum install -y vsftpd systemctl enable vsftpd.service systemctl start vsftpd.service systemctl st ...

  10. 201671010438王奕晗实验十四 团队项目评审&课程学习总结

    个人学习总结博客 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 完成个人软件心得总结 一.结合本学期课程学习内容,对比<实验一 软件工 ...