概率&期望
gongyuandaye
不要再问我会不会写可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最小费用最大流预处理混合图上莫比乌斯反演莫队带花舞蹈链并查集树状数组套主席树预处理动态DP分治FFT求多项式逆元对数函数的指数函数用可持久化并查集合并最小费用循环流上插头DP了。
展开
-
HDU 6853 Jogging (bfs+图上随机游走+概率)
题意:求在坐标图上,随意游走无穷步,回到起点的概率。只能游走gcd(x,y) > 1的坐标。题解:bfs+图上随机游走+概率对于一张n个点的连通图,记起点为s,那么有一个结论,从s出发然后回到s的概率为 (s的度数+1)/(总度数+n)。我们可以从s点开始bfs构建连通图,若图包含了对角线即x==y,那么图是无穷的,概率自然在极限下趋于0。然后我们可以证明这张不包含对角线的连通图,它的大小只有几百,贴一下题解的证明:bfs的时候直接记录度数即可。#define _CRT_SECURE_N原创 2020-09-17 00:46:17 · 807 阅读 · 0 评论 -
HDU 6836 Expectation (生成树计数+按位计算期望)
题意:给出一张无向图,求随机选择一个生成树的权值的期望。权值为mst的边权按位与后的结果。题解:生成树计数+按位计算期望总的生成树数量直接根据矩阵树定理求一下。由于权值是按位与之后的结果,也就是说只有这颗mst所有权值的第 i 位都为1时才会有贡献,那我们单独考虑每一位的贡献。遍历所有位,对于该位上为1的边连起来,然后跑生成树计数,该位的贡献就是2i * 数量。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<原创 2020-08-07 11:30:35 · 331 阅读 · 0 评论 -
POJ 2096 Collecting Bugs(概率dp)
题意:一个软件有s个子系统,会产生n种bug。某人一天发现一个bug,这个bug属于某种bug,发生在某个子系统中。求找到所有的n种bug,且每个子系统都找到bug,这样所要的天数的期望。需要注意的是:bug的数量是无穷大的,所以发现一个bug,出现在某个子系统的概率是1/s,属于某种类型的概率是1/n。题解:dp[i][j]dp[i][j]dp[i][j]:已经找到i种bug,并存在于j个子系统中,要达到目标状态的天数的期望。可得dp[n][s]=0dp[n][s]=0dp[n][s]=0dp[i]原创 2020-05-14 17:53:25 · 302 阅读 · 0 评论 -
HDU 4336 Card Collector (期望+状压dp)
题意:给出n种图案在每一张卡片上的出现的概率,一张卡片只能出现一种图案,或者不出现,求集齐所有图案所需的卡片期望数。题解:期望+状压dp二进制压缩,dp[i]dp[i]dp[i]表示获得当前状态之后还需要的卡片数。考虑两种情况。令p为当前状态未包含图案的概率和(Σp[j])。①抽到已经有的图案或未抽到dp[i] += (dp[i] + 1) * (1 - p)②抽到未有的图案dp[i] += (dp[i | 1 << (j - 1)] + 1) * p[j]化简一下得dp[i]即原创 2020-05-14 11:29:59 · 152 阅读 · 0 评论 -
LightOJ 1408 Batting Practice (期望)
题意:球投丢的概率为p,那么连续投中k1次或者连续投丢k2次的次数期望是多少。题解:期望设f[x]f[x]f[x]表示连续投丢xxx次后还需投的期望次数。f[k2] = 0设g[x]g[x]g[x]表示连续投中xxx次后还需投的期望次数。g[k1] = 0f[x] = p * (f[x + 1] + 1) + (1 - p) * (g[1] + 1) ①g[x] = (1 - p) * ...原创 2020-05-02 15:32:20 · 154 阅读 · 0 评论 -
LightOJ 1395 A Dangerous Maze (II) (概率dp)
题意:给出n扇门,每扇门都给出一个数x,若为正数,则表示在x时间后走出迷宫,若为负数,则表示在x时间后回到起点,你会记得最后k扇你走过的门(不会再走),求最后的期望时间。题解:概率dp这题的进阶版,原版不会记住走了哪扇门。一样的思路。用dp[i]dp[i]dp[i]表示记住iii扇门之后走出去还需要的期望时间。n1:正数数量 n2:负数数量s1:正数之和 s2:负数之和①当...原创 2020-05-02 14:27:37 · 220 阅读 · 0 评论 -
LightOJ 1364 Expected Cards (概率dp)
题意:54张牌,大小王可以变成任意花色,随机打乱,每次抽一张,使得每种花色都达到一定的数量,求抽卡的期望次数。题解:概率dpdp[x1][x2][x3][x4][k1][k2]dp[x1][x2][x3][x4][k1][k2]dp[x1][x2][x3][x4][k1][k2]:表示手里四种花色的数量分别为xxxiii,大小王牌分别取哪一种花色时还需要抽卡的期望次数。对于每一种当前状态,获...原创 2020-05-02 12:58:54 · 214 阅读 · 0 评论 -
LightOJ 1342 Aladdin and the Magical Sticks (期望)
题意:地上有n种棍子,其中有两种类型,一种类型是可识别,一种类型是不可识别,每个棍子都有一个权值。当你捡到可识别的,那么你以后就不会再捡这个棍子,如果是不可识别的,那么你有可能还会捡。每捡一根获得一个权值。问将所有棍子收集完的权值和的期望。题解:期望对于可识别的棍子,直接累加就可以。对于不可识别的一根棍子,至少捡起一次期望次数=1+1/2+1/3+···+1/n(邮票收集问题),然后乘以权值...原创 2020-05-01 21:13:34 · 202 阅读 · 0 评论 -
LightOJ 1321 Sending Packets (期望+floyd)
题意:给定一张无向图,每条边都有一个通过的概率,如果无法通过,那么就要回到起点重新出发,从起点到终点的时间固定为2k,问走S次的最小期望时间。题解:期望+floyd先求出从起点到终点的最大成功概率p,这边n最大只有100,直接用floyd跑。设期望时间为E。如果成功,时间为2∗k∗p2*k*p2∗k∗p如果不成功,时间为(E+2∗k)∗(1−p)(E+2*k)*(1-p)(E+2∗k)∗...原创 2020-04-23 17:05:31 · 168 阅读 · 0 评论 -
LightOJ 1317 Throwing Balls into the Baskets (期望)
题意:n个人,m个篮子,k轮,每轮每人选一个篮子投一个,投进概率为p,求k轮后投进球的期望个数。题解:期望假题。跟篮子无关,答案就是n∗k∗pn*k*pn∗k∗p。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<...原创 2020-04-23 15:06:34 · 167 阅读 · 0 评论 -
LightOJ 1287 Where to Run (期望+状压dp+记忆化搜索)
题意:给出无环图,小偷一开始在起点0,走过的点不能再走,当还有路可以走时,可以选择停留5min,相当于加一个自环,求最后无路可走的时间期望。题解:期望+状压dp+记忆化搜索因为n只有15,用状压dp。我们用dp[u][sta]dp[u][sta]dp[u][sta]表示在点u,状态为sta(即表示走过了那些路口)的时间期望,知道起点,然后逆推。用cnt表示可走的路数量,cnt为0时dp[u...原创 2020-04-16 15:58:49 · 213 阅读 · 0 评论 -
LightOJ 1284 Lights inside 3D Grid (期望)
题意:一个X * Y * Z的立方体,每个灯泡一开始都是关闭的,有m次反转操作,每次操作随机选择两个点,将两个点之间的灯泡全部反转,求灯泡亮的期望个数。题解:期望考虑每个灯泡的贡献,每个灯泡亮着的概率就是单个灯泡的期望,全部累加就是结果。对于点C(x,y,z)只有当被选中的2个点A(x1,y1,z1),B(x2,y2,z2),满足x1<=x<=x2且y1<=y<=y2...原创 2020-04-16 11:49:16 · 149 阅读 · 0 评论 -
LightOJ 1274 Beating the Dataset (概率dp)
题意:做n个题目蒙答案,答案要么是YES要么是NO,给出分别有多少个。第一题猜YES,然后接下来每一题猜上一题的正确答案,求不通过的数据点期望数量。题解:概率dp可以解方程求出YES和NO的数量a和b。dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0/1]表示当前第iii题,已经输出了jjj个YES,当前要输出YES/NO。因为第一个猜YES,那么相当于正确答案前加...原创 2020-04-15 23:14:02 · 173 阅读 · 0 评论 -
LightOJ 1265 Island of Survival (概率dp)
题意:一个岛上有你,t头老虎,d头鹿,每天都有两种生物见面:(1)你和老虎见面,你死翘翘。(2)鹿和老虎见面,鹿死翘翘。(3)老虎和老虎见面,都死翘翘。(4)鹿和鹿见面,相安无事。(5)你和鹿见面,杀不杀鹿取决于你。直到有一天你可以保证自己不会死,输出得到这个结果的期望概率。题解:概率dp奇数个老虎,必死的局,考虑偶数,让老虎碰上自己概率最小,不杀鹿。用dp[i]dp[i]dp[...原创 2020-04-15 21:02:37 · 151 阅读 · 0 评论 -
LightOJ 1248 Dice (III) (概率dp)
题意:给出n面骰子,求每面至少出现一次朝上的掷骰子期望次数。题解:概率dp用dp[i]dp[i]dp[i]表示iii面出现的掷骰子期望数。出现已经掷出来的iii面的概率:i/ni/ni/n,期望次数不变。出现未掷出来的iii面的概率:(n−i)/n(n-i)/n(n−i)/n,期望次数递推。那么可以得到递推方程:dp[i]=dp[i]∗i/n+dp[i+1]∗(n−i)/n+1dp[i]...原创 2020-04-15 17:26:02 · 161 阅读 · 0 评论 -
LightOJ 1151 Snakes and Ladders (期望+高斯消元)
题意:有100个格子,初始位置在1,格子之间可能存在传送,传送不会连续,每次掷骰子前进相应步数,若走出去重新掷骰子,求最后走到100的掷骰子的期望数。题解:期望+高斯消元跟这题有点搞混,链接给的是与掷骰子无关的金子数,只要考虑能到的格子,这题是掷骰子要掷多少次的期望,考虑包括不能到的格子。因为格子与格子之间存在传送,不好递推,用高斯消元解方程。考虑三种情况:①不存在传送,假设cnt为不超...原创 2020-04-14 22:31:06 · 246 阅读 · 1 评论 -
LightOJ 1104 Birthday Paradox (概率)
题意;假设一年有n天,选多少人,才能使至少两个人生日相同概率大于等于0.5。题解:概率可以反过来求所有人生日都不相同的概率小于0.5。p=1∗(n−1)/n∗(n−2)/n⋅⋅⋅p=1*(n-1)/n*(n-2)/n···p=1∗(n−1)/n∗(n−2)/n⋅⋅⋅#define _CRT_SECURE_NO_WARNINGS#include<iostream>#inclu...原创 2020-04-14 16:53:13 · 134 阅读 · 0 评论 -
LightOJ 1079 Just another Robbery (概率dp+背包)
题意:有n家银行,每家银行都有一定数量的钱和被抓概率,给出自己被抓概率的上限,求能获得最多的钱。题解:概率dp+背包用dp[]dp[]dp[]表示获得这么多钱被抓的概率。获得同等钱的概率要尽可能小。设去A银行被抓概率为P(A),B银行为P(B),那么P(A∪B)=P(A) + P(B) - P(A)P(B)。然后跟01背包差不多,去求获得iii钱的最小概率就可以。double类型mems...原创 2020-04-14 10:06:42 · 202 阅读 · 0 评论 -
LightOJ 1038 Race to 1 Again (概率dp)
题意:一个数n除以自己的任意因子,更新n迭代,求最后n为1的除法次数期望。题解:概率dp知道初始位置,往后dp。对于一个数,必然是前一个状态的乘法,期望值就是前驱状态乘法数和 / 前驱状态数量。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string&...原创 2020-04-13 23:07:41 · 110 阅读 · 0 评论 -
LightOJ 1030 Discovering Gold (概率dp)
题意:有一长串位置,开始时在位置1,每个位置有一定数量的金子数,每次掷骰子走相应的步数,若要走出这个序列,那么就重新掷,直到走到最终位置。求最后得到的期望金子数。题解:概率dp因为知道初始位置,从末尾往前dp。dp[i]+=(Σdp[i+j])/6dp[i] += (Σdp[i+j])/6dp[i]+=(Σdp[i+j])/6,因为一开始的时候,长度没有大于6,所以要取min。注意分母不能...原创 2020-04-13 22:12:08 · 153 阅读 · 0 评论 -
LightOJ 1027 A Dangerous Maze (期望)
题意:给出n扇门,每扇门都给出一个数x,若为正数,则表示在x时间后走出迷宫,若为负数,则表示在x时间后回到起点,并忘记刚刚走了哪条路,求最后的期望时间,结果以分数呈现。题解:期望设总的期望为eee。对于其中的一扇门:若为正数:走出去的期望为x/nx/nx/n。若为负数:走回来的期望为x/nx/nx/n,再走出去的期望为(x+e)/n(x+e)/n(x+e)/n。把所有门的情况加起来就是...原创 2020-04-13 21:41:22 · 169 阅读 · 0 评论