前言 话说在\(Loj\)下了个数据发现这题的名字叫\(fgo\) 正题 题目链接:https://www.luogu.com.cn/problem/P5405 题目大意 \(n\)张卡的权值为\(1/2/3\)的概率权重分别是\(p_{x,1/2/3}\),然后按照权值每次获得一张未获得的卡,然后再该出一棵有向树(方向可以都是外向或内向的),求所有每条边\((u,v)\),\(u\)都比\(v\)先获得的概率. \(1\leq n\leq 1000,0\leq p_{i,j}\leq 10^6…
考虑外向树怎么做.显然设f[i][j]为i子树中出现权值和为j的合法方案的概率,转移做树形背包即可. 如果树上只有一条反向边,显然可以先不考虑该边计算概率,再减去将整棵树看做外向树的概率.于是考虑容斥,进一步拓展到多条反向边,就是考虑0条反向边的概率-考虑1条反向边的概率+考虑2条反向边的概率……容斥可以在dp中完成,即遇到反向边时分是否考虑它转移,若考虑乘上-1的系数. #include<bits/stdc++.h> using namespace std; #define ll long…
分析 首先容易得出这样一个事实,在若干物品中最先被选出的是编号为\(i\)的物品的概率为\(\frac{W_i}{\sum_{j=1}^{cnt}W_j}\). 假设树是一棵外向树,即父亲比儿子先选(一个点比它的子树中的所有其他的点先选),我们可以令\(f(i,j)\)表示以\(i\)为根的子树,子树内的总权值为\(j\),子树内的选取顺序合法的概率,转移类似树上分组背包. 那么我们现在需要考虑如何处理儿子比父亲先选的情况,其实可以直接容斥,减去父亲比儿子先选的概率就好了,注意这样的子树不要统计…
先考虑外向树的做法,显然一个点在其子树内第一个出现的概率等于它的权值除以它子树的权值和.于是f[i][j]表示i的子树的权值和为j时,i子树内所有数的相互顺序都满足条件的概率,转移直接做一个背包卷积即可. 现在考虑反向边,通过容斥变成“至少有i条边不满足条件”的满足题目条件的概率,这样一来那些反向边会有一部分被变为正向边,另一部分被删除.如果枚举哪些边被反向的话可以做到$O(2^nn^2)$.但事实上我们并不关心具体是哪些边被反向了,而只关心有多少边被反向了.于是自然有一个方程f[i][j][k…
题目:https://loj.ac/problem/3124 看了题解:https://www.cnblogs.com/Itst/p/10883880.html 先考虑外向树. 考虑分母是 \( \sum w \) ,同样一个子树,其实不会因为子树外部分的 \( \sum w \) 不同而对子树内的 DP 值有影响. 比如,在只考虑以子树内的 \( \sum w \) 为分母的情况下做出了 “ cr 子树内部合法的方案数 f[cr] ” 设 \( W' = \sum\limits_{i \in…
[CTS2019]氪金手游 各种情况加在一起 先考虑弱化版:外向树,wi确定 i合法的概率就是wi/sw sw表示子树的w的和,和子树外情况无关 这些概率乘起来就是最终合法的概率 如果都是外向树, f[i][j]i为根子树,sw=j的所有wi出现方案下的合法概率和 背包 有反向边? 直接处理满足很难,子树内外有先后顺序 容斥!不满足+随意 不满足只要转移的时候乘上-1 随意就是断开这条边不考虑. 所以f[i][j]定义是:i为根子树的连通块sw=j,所有情况的合法概率乘上(-1)^|S|的和 注…
传送门 D2T3签到题可真是IQ Decrease,概率独立没想到然后就20pts滚粗了 注意题目是先对于所有点rand一个权值\(w\)然后再抽卡. 先考虑给出的关系是一棵外向树的情况.那么我们要求在所有点内,根要被首先抽到,然后对于每一棵子树,每棵子树的根需要在这个子树内第一个被抽到,这就是一个很明显的子问题了. 考虑某一个点\(x\)在它的子树中第一个被抽到的概率.设\(W\)表示所有点的\(w\)之和,\(W'\)表示\(x\)的子树的\(w\)之和,\(w_x\)表示点\(x\)的权值…
降智好题.本蒟蒻VP时没想到怎么做被题面迷惑了,只会20分的“好”成绩.简直自闭了. 首先显然度为0的点是白给的,根据等比数列求和公式即可求得.然后考虑这个树如果是一颗外向树,就是每个点先父亲再自己.然后直接DP,令f[i][j]表示子树i内Σw=j的概率,转移时直接用背包转移一发即可.边是正向的直接转移,反向的加上去掉该限制的答案,并减去反向的答案.复杂度显然是O(n2) #include<bits/stdc++.h> using namespace std; ,mod=; ],f[N][N…
原题传送门 我们珂以先考虑一条链的情况,设\(sum\)为所有\(w_i\)的总和,\(Sw_i\)表示\(\sum_{j=i}^nw_i\) \[1 \rightarrow 2 \rightarrow 3 \rightarrow -- \rightarrow n\] \[P(1\rightarrow n)=\prod_{i=1}^n(\frac{w_i}{Sum}\sum_{j=0}^{\inf}(\frac{Sum-Sw_i}{Sum})^j)=\prod_{i=1}^n\frac{w_i}…
Problem \(\mathtt {loj-3124}\) 题意概要:给定 \(n\) 个点,\(w_i\) 分别有 \(p_{i,1},p_{i,2},p_{i,3}\) 的概率取 \(1,2,3\). 在确定了所有的 \(w_i\) 后再开始游戏:不断抽点,点 \(i\) 被抽中的概率为 \(\frac {w_i}{\sum_{j=1}^nw_j}\),直到所有点都被抽中过. 给定 \(n-1\) 个二元组 \((u,v)\) 表示第一次抽中 \(u\) 的时间需要比第一次抽中 \(v\)…