LOJ3124 CTS2019 氪金手游 概率、容斥、树形DP
传送门
D2T3签到题可真是IQ Decrease,概率独立没想到然后就20pts滚粗了
注意题目是先对于所有点rand一个权值\(w\)然后再抽卡。
先考虑给出的关系是一棵外向树的情况。那么我们要求在所有点内,根要被首先抽到,然后对于每一棵子树,每棵子树的根需要在这个子树内第一个被抽到,这就是一个很明显的子问题了。
考虑某一个点\(x\)在它的子树中第一个被抽到的概率。设\(W\)表示所有点的\(w\)之和,\(W'\)表示\(x\)的子树的\(w\)之和,\(w_x\)表示点\(x\)的权值
那么枚举之前抽到的非当前子树的卡的次数有
\(p = \frac{w_x}{W} \sum\limits_{i=0}^{+\infty} (\frac{W - W'}{W})^i = \frac{w_x}{W'}\)。
那么概率就只和\(w_x\)和\(W'\)有关系了,那么一个点的所有子树的概率因而也是独立的。
考虑树形DP。因为一个点的概率和\(W'\)有关,所以考虑将\(W'\)作为一个状态:设\(f_{i,j}\)表示点\(i\)的子树权值和为\(j\)方案合法的概率,转移直接用类似背包的方式合并儿子,最后考虑当前点,复杂度是\(O(n^2)\)的。
然后就获得了0分的好成绩
接下来考虑存在反向边的情况。我们可以容斥掉这些边,即选择这些边不存在或者让这些边反向。我们枚举这些边的状态,可以获得一个外向森林,在这个森林上DP可以获得一个\(O(2^nn^2)\)的算法
然后就获得了20分的暴力
考虑优化这一部分。注意到瓶颈是枚举边的状态,考虑将这些边的状态直接在DP中显现。如果要求一条反向边反过来和原来的DP是一样的,否则我们可以认为这一棵子树的大小是\(0\),在树形DP的时候同样地转移。在DP的时候额外加上一维边的数量,就有一个\(O(n^3)\)的算法,可以获得\(50\)分。
将容斥系数算入DP方程中,将反边数量一维压掉就可以获得一个\(O(n^2)\)的算法。
代码
转载于:https://www.cnblogs.com/Itst/p/10883880.html
LOJ3124 CTS2019 氪金手游 概率、容斥、树形DP相关推荐
- [CTS2019]氪金手游(容斥+树形背包DP)
降智好题.本蒟蒻VP时没想到怎么做被题面迷惑了,只会20分的"好"成绩.简直自闭了. 首先显然度为0的点是白给的,根据等比数列求和公式即可求得.然后考虑这个树如果是一颗外向树,就是 ...
- [CTS2019]氪金手游 概率Dp,树形Dp,容斥原理
[CTS2019]氪金手游 题目传送门: luogu 分析 先考虑一下那个奇怪的条件(都知道是哪个吧) 它实际上是说,整个结构形成了一棵树. 但是这棵树很奇怪,边有顺的也有反的. 先考虑全是顺的边的情 ...
- P5405 [CTS2019]氪金手游 【数学概率+树形dp】
P5405 [CTS2019]氪金手游 [数学概率+树形dp] 先考虑外向树的情况: 这个的关键是要把求满足拓扑序的概率转化为求 每个点都比它的子树中的所有节点先取到的概率 .单个节点 xxx 的概率 ...
- Luogu5405 CTS2019氪金手游(容斥原理+树形dp)
考虑外向树怎么做.显然设f[i][j]为i子树中出现权值和为j的合法方案的概率,转移做树形背包即可. 如果树上只有一条反向边,显然可以先不考虑该边计算概率,再减去将整棵树看做外向树的概率.于是考虑容斥 ...
- [LOJ#3124][CTS2019]氪金手游(概率 + 树形 DP + 容斥)
Address 洛谷 P5405 LOJ #3124 Solution 先考虑如果以某个点(下面定为 111 )为根时,如果所有的限制二元组 (u,v)(u,v)(u,v) 都满足 uuu 是 vvv ...
- [LOJ#3119][Luogu5405][CTS2019]氪金手游(DP+容斥)
先考虑外向树的做法,显然一个点在其子树内第一个出现的概率等于它的权值除以它子树的权值和.于是f[i][j]表示i的子树的权值和为j时,i子树内所有数的相互顺序都满足条件的概率,转移直接做一个背包卷积即 ...
- LOJ 3124 「CTS2019 | CTSC2019」氪金手游——概率+树形DP
题目:https://loj.ac/problem/3124 看了题解:https://www.cnblogs.com/Itst/p/10883880.html 先考虑外向树. 考虑分母是 \( \s ...
- 题解-CTS2019氪金手游
Problem \(\mathtt {loj-3124}\) 题意概要:给定 \(n\) 个点,\(w_i\) 分别有 \(p_{i,1},p_{i,2},p_{i,3}\) 的概率取 \(1,2,3 ...
- [CTS2019]氪金手游
https://www.luogu.org/problemnew/show/P5405 题解 首先考虑一条链的情况. \(O->O->O->O->O\) 比如说这样一条链. 每 ...
最新文章
- 解决Mac下npm权限问题
- 2.pandas数据清洗
- 【深度学习】DIY 人脸识别技术的探索(一)
- How to get user parameter settings
- catia钣金根据线段折弯_SolidWorks钣金折弯参数设置技巧
- 阅读源码学设计模式-单例模式
- 设置文字多行显示溢出显示省略号
- lokijs可以用mysql_JavaScript实现的内存数据库LokiJS介绍和入门实例_javascript技巧
- C++ class中的静态(static)成员
- 国家广电总局:立即停播“椰树牌椰汁”等部分版本广告
- 实践篇(1)--QPG之“打狗棍法”
- Captura录屏软件使用说明
- SAVIOR Securing Autonomous Vehicles with Robust Physical Invariants
- Maven 环境变量配置
- 一帮一 分数 15作者 陈越单位 浙江大学
- 【JZOJ A组】Melancholy
- python——人工智能(AI)之网络图片文字识别案例详细讲解
- 50万粉丝单场带货破200万!这些快手美妆黑马主播是如何在双十一前夕涨粉又爆单的?
- Java面试复习提纲
- 20191009 3. 史上最全的USB-PD充电协议,包含PD协议波形图
热门文章
- openCV视频操作(C++版本)
- 秦疆 西部开源_Win10下安装Hadoop3.1.2详解
- 科创人·派拉软件CEO谭翔:零信任本质是数字安全,To B也要深研用户心智
- 百度AICA迎来毕业季,55位新晋“首席AI架构师”推进产业智能化
- uniapp如何点击高亮,文字相对于整个页面左右居中显示?
- Latex texstudio法国人名字上面的一撇,声调输入
- (已解决)微信小程序调查问卷所有题放在一个页面上
- android自定义控件padding属性无效的解决
- 糖尿病预测模型-Pima印第安人数据集-论文_企业科研
- Pr:添加黑边效果的方法