概率期望
文章平均质量分 50
Clove_unique
All that you have lost can be won back bit by bit as long as you wish for it.
展开
-
[COGS1489]玩纸牌(概率期望dp)
题目描述传送门题解设d(i,j)表示玩了i局赢了j局的概率,并且获胜比率不大于p*100%的时候的概率。 那么可以写出递推式:当j/i<=p时,d(i,j)=d(i-1,j)*(p-1)+d(i-1,j-1)*p. 那么Q=d(n,0)+d(n,1)+……+d(n,j=i*p)即为打了n场游戏未成功的概率。 于是可以得到天数的期望e=1+2*(1-Q)+3*(1-Q)^2+4*(1-Q)^3…原创 2016-11-15 15:01:34 · 575 阅读 · 0 评论 -
[Codeforces235B]Let's Play Osu!(期望dp)
题目描述传送门 题意:长度为n的串,每一个位置是o的概率是pi,否则是x,得分为所有极长连续o的长度的平方和。求期望得分题解f(i)表示前i个期望得分 g(i)表示以第i个为结尾的连续o的期望代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using names原创 2017-03-14 20:38:23 · 820 阅读 · 0 评论 -
[Codeforces442B]Andrey and Problem(贪心+概率)
题目描述传送门 题意:有n个人,第n个人帮助A的概率为pi,问有且只有一个人帮助A的概率题解代码原创 2017-03-14 22:43:19 · 602 阅读 · 0 评论 -
[Codeforces498B]Name That Tune(概率期望dp)
题目描述传送门 题意:有n首音乐,第i首被听出来的概率为pi,刚开始听第一首,1s后如果听出来了则放第下一首,否则接着听这一首,第i首在连续听了ti s之后一定会被听出来,问Ts后听出来的歌的期望数量。题解刚开始写的方法死wa死wa… 后来发现问题了之后从i-1->i的的方法就变得死麻烦死麻烦… 终于改姿势了…首先考虑没有ti的限制 令f(i,j)表示第j秒在听第i首歌的概率,也就是说在第j原创 2017-03-14 23:27:48 · 824 阅读 · 0 评论 -
[Codeforces335E]Counting Skyscrapers(概率期望)
题目描述传送门 题面翻译见:http://cogs.pro/cogs/problem/problem.php?pid=1921题解神题啊…神哭了… 就知道Alice和Bob凑在一起肯定不干好事 想了一节晚自习+两节课,只yy出了一种不靠谱的O(n2h)O(n^2h)的东西… 看题解发现不是dp,竟然是一道纯数学题… 要特别注意的是这道题的高度和编号是岔劈着的,非常恶心 cf官方题解:ht原创 2017-03-15 11:38:45 · 1000 阅读 · 2 评论 -
[Codeforces698C]LRU(概率dp)
题目描述传送门 题意:有一个大小为k的缓存区,每次从n种物品中按照一定的概率选取一种物品尝试放进去.同一个物品每一次选取的概率都是相同的.如果这种物品已经放进去过就不再放进去.如果缓存区满了就把放进去的时间离现在最远的物品拿出来.问10^100次后每个物品在缓冲区中的概率.题解1010010^{100}趋近于+∞+\infty,也就是说,做很多很多次之后,缓存区一定是满的,缓存区不满的概率趋近于0原创 2017-03-15 18:29:12 · 865 阅读 · 0 评论 -
[BZOJ1415][Noi2005]聪聪和可可(bfs+概率期望+记搜)
题目描述传送门题解这题题面有点毒 应该是求聪聪吃到可可的时间的期望bfs处理两点之间的最短路 然后预处理出来当聪聪和可可分别在哪里的时候聪聪会向哪里走令f(i,j)表示当某一秒开始时聪聪在i,可可在j一直到聪聪吃到可可的期望 容易知道当i=j时f(i,j)=0 当dis(i,j)<=2时f(i,j)=1 假设当聪聪在i,可可在j时聪聪会走到k,d(i)为i的度数,p=1/(d(i)+1)原创 2017-03-15 20:47:35 · 1113 阅读 · 0 评论 -
[BZOJ2318]Spoj4060 game with probability Problem(概率dp)
题目描述传送门题解读错题了T_T f(i,0)表示有i个石子Alice先手赢的概率,f(i,1)表示有i个石子Alice后手赢的概率如果有i-1个石子的时候Alice后手比先手更优,Bob先手比后手更优: 若现在Alice先手,那么她一定想拿掷正面拿走石子,f(i,0)=p*f(i-1,0)+(1-p)*f(i,1) 若现在Bob先手,他同样想掷正面,f(i,1)=q*f(i-1,1)+(1-原创 2017-03-16 09:03:46 · 827 阅读 · 0 评论 -
[BZOJ3036]绿豆蛙的归宿(拓扑序+期望dp)
题目描述传送门题解DAG上的sb dp代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<queue>using namespace std;#define N 500005int n,m,out[N];int tot,point[N],nxt[原创 2017-03-16 09:17:13 · 598 阅读 · 0 评论 -
[BZOJ4318]OSU!(期望dp)
题目描述传送门题解g(i)表示以i结尾的极长1的期望长度,h(i)表示以i结尾的极长1的长度的平方的期望,f(i)表示以i结尾的期望得分 然后x2+2x+1−>(x+1)2x^2+2x+1->(x+1)^2, x3+3x2+3x+1=>(x+1)3x^3+3x^2+3x+1=>(x+1)^3 dp就行了 特别注意这题平方的期望不等于期望的平方代码#include<algorithm>#inc原创 2017-03-16 13:54:00 · 2276 阅读 · 0 评论 -
[BZOJ2337][HNOI2011]XOR和路径(概率期望dp+高斯消元)
题目描述传送门题解按位分解,统计每一位为0和为1的概率,最后乘上权值就行了 算概率的话用高斯消元 时间复杂度O(30∗(2n)3)O(30*(2n)^3),很不科学对不对我也是这么觉得代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace原创 2017-03-16 18:20:58 · 512 阅读 · 0 评论 -
[BZOJ2134]单选错位(概率期望)
题目描述传送门题解答案就是每一位和前面一位答案相同的概率和(权值为1) 也就是sigma (1/a(i-1)) * (1/a(i)) * min(a(i-1),a(i))代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#d原创 2017-03-16 18:22:59 · 950 阅读 · 0 评论 -
[BZOJ4008][HNOI2015]亚瑟王(概率期望dp)
题目描述传送门题解感觉这题挺神的,我想了好久 首先需要明确的是打牌的先后顺序是无所谓的,比如我四轮打了第1324张把它看做打了第1234张一样做 令f(i,j)表示1..i-1张牌已经打出,还剩下r-j..r这些轮没有考虑的概率 算f(i,j)时那么现在要打出第i-1张牌,有2种情况 1°第i-1张牌在剩下的j轮中都没有打出,f(i,j)+=f(i-1,j)*(1-p(i-1))^j 2°原创 2017-03-16 23:15:17 · 818 阅读 · 1 评论 -
SDOI2017 Round1 解题报告
Day1A product题意简述定义f(0)=0,f(1)=1,f(n)=f(n−1)+f(n−2)(n≥2)f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n\ge 2) 求∏i=1n∏j=1mf(gcd(i,j))\prod\limits_{i=1}^n\prod\limits_{j=1}^m f(gcd(i,j)) 多组数据,对109+710^9+7取模数据范围对10%原创 2017-04-12 07:43:21 · 1232 阅读 · 0 评论 -
[BZOJ3640]JC的小苹果(概率dp+高斯消元)
题目描述传送门题解设f(i,j)表示血量为i,走到j时的概率 一个比较显然的式子是f(i,j)=∑(j,v)∈Ef(i+a(j),v)d(v)f(i,j)=\sum\limits_{(j,v)\in E}{f(i+a(j),v)\over d(v)} 但是有一个问题就是如果a(j)=0的话f(i+a(j))实际上还没有推出来,和f(i)是同一层的 那么就需要用高斯消元来解 而如果每一层都解一原创 2017-02-09 21:54:53 · 1401 阅读 · 5 评论 -
[BZOJ4832]抵制克苏恩(概率期望dp)
题目描述传送门题目大意:有1一个英雄和若干随从奴隶主,克苏恩会攻击 K 次,每次会从对方场上的英雄和随从中随机选择一个并对其产生 1 点伤害。现在对方有一名克苏恩,你有一些奴隶主作为随从,每名奴隶主的血量是给定的。 如果克苏恩攻击了你的一名奴隶主,那么这名奴隶主的血量会减少 1 点,当其血量小于等于 0 时会死亡,如果受到攻击后不死亡,并且你的随从数量没有达到 7 ,这名奴隶主会召唤一个拥有 3原创 2017-04-22 20:14:20 · 1688 阅读 · 0 评论 -
[Codeforces540D]Bad Luck Island(概率dp)
题目描述传送门 题意:有r个石头、s个剪刀、p个布,每一次两个人随机碰上,输的人死掉,问只剩下每一种的概率。题解令f(i,j,k)表示三种人分别有i个,j个,k个时到初始的概率 三个人分别算 注意这道题不能倒推代码#include<algorithm>#include<cstring>#include<cstdio>#include<cstdio>#include<cmath>usi原创 2017-03-14 19:55:48 · 491 阅读 · 0 评论 -
[Codeforces398B]Painting The Wall(期望dp)
题目描述传送门 题意: 一个人粉刷n*n的墙,每一次随机选择一个格子染色,每一行和每一列都至少染了一个的时候结束,每染一个花费1的时间。求结束时间的期望。题解令f(i,j)表示染了i行,j列到结束的期望 转移方程很显然 f(i,j)=(i/n)* (j/n) * (f(i,j)+1)+(i/n) * (1-j/n) * (f(i,j+1)+1)+(1-i/n) * (j/n) * (f(i+原创 2017-03-14 19:13:00 · 619 阅读 · 0 评论 -
[BZOJ3450]Easy(期望dp)
题目描述传送门题解简单的期望题。 f(i)f(i)表示以第i个字符结尾的期望得分,g(i)g(i)表示以第i个字符结尾连续的oo的期望长度。 分情况讨论:(设LL表示当前的连续oo的长度) ①当s(i)=xs(i)=x时,L=0L=0,所以显然f(i)=f(i−1),g(i)=0f(i)=f(i-1),g(i)=0; ②当s(i)=os(i)=o时,L=L+1L=L+1,得分从L2L^2变为原创 2016-11-15 11:11:09 · 698 阅读 · 0 评论 -
[BZOJ1076][SCOI2008]奖励关(状压dp+期望)
题目描述传送门题解概率和期望什么都不会吖。。。感觉这题不是很难但是我还是看了题解才做出来。。。 这一步的期望=(上一步的期望+这一步的权值)*这一步的概率。 然后用一维状压来表示一下已选过的状态来判断是否可以满足。用f(i,s)f(i,s)来表示第i步状态为s的期望。由于正推没有办法确定状态的最优解,所以倒推比较合适。代码#include<iostream>#include<cstring>原创 2016-11-15 10:56:56 · 541 阅读 · 0 评论 -
[BZOJ1419]Red is good(概率期望dp)
题目描述传送门题解这道题搞了好久啊。。各种胡思乱想各种调。 一上来想先求前i张牌出现了j张红色的牌的概率,然后再求第i张牌时红色的牌的概率,然后再根据这个概率求期望。但是后来我发现没有办法处理“最优策略”的问题,因为它有可能拿到了最优策略了之后就退出了,后面的期望完全可以不计算。 同样考虑倒着推,来避免最优策略带来的问题。f(i,j)表示还剩下i张红牌和j张黑牌的期望,然后f[i&1][j]=m原创 2016-11-15 17:48:22 · 480 阅读 · 0 评论 -
[BZOJ3270]博物馆(概率+高斯消元)
题目描述传送门题解假设当前在点(i,j),下一步从这个点走到它某一个相邻的点的概率即为1−p(i)d(i)1-p(i)\over d(i),记为go(i)go(i) 设两个人分别走到i,j的概率为f(i,j),那么 f(i,j)=f(i,j)p(i)p(j)+∑(i,x),(j,y)∈Ef(x,j)p(j)go(x)+f(i,y)p(i)go(y)+f(x,y)go(x)go(y)f(i,j)=原创 2017-02-06 20:12:18 · 1311 阅读 · 0 评论 -
[BZOJ3143][Hnoi2013]游走(概率期望+高斯消元)
题目描述传送门题解感觉这种互相之间都有关系的题目就是列一坨式子然后用高斯消元搞一下… 设点i的期望到达次数为f(i),点i的度为d(i),那么f(i)=∑(i,j)∈Ef(j)d(j)f(i)=\sum\limits_{(i,j)\in E}{f(j)\over d(j)} 就是相当于其它的点走到这个点 注意这里点n是不能计算的,因为n不会再往其它的点走 这样的话得出了n-1个方程,高斯消元原创 2017-02-06 16:53:50 · 976 阅读 · 0 评论 -
[BZOJ2707][SDOI2012]走迷宫(tarjan+概率期望+高斯消元)
题目描述传送门题解刚开始题意理解错了…或者说我对期望的理解本来就不是很好… 首先考虑图是一个DAG的情况 如果除了终点之外还有出度为0的点,那么答案为INF(因为有概率不走到终点) 然后令f(i)f(i)表示从点i走到终点的期望步数,那么f(i)=∑(i,v)∈E(f(v)+1)∗out(i)f(i)=\sum\limits_{(i,v)\in E}(f(v)+1)*out(i),其中out(原创 2017-03-03 14:17:25 · 1712 阅读 · 2 评论 -
[BZOJ2688]Green Hackenbush(概率dp)
题目描述传送门题解博弈论中的树形删边游戏:叶子节点sg=1,剩余节点sg=所有儿子的sg+1的异或和 所有树的根sg异或起来为0则先手必败,否则必胜令g(i,j)表示i个点的随机二叉树根的sg值为j的概率 cnt(i)表示i个点的随机二叉树共有几个(卡特兰数) cnt(i)直接根据卡特兰数的递推公式递推就行了 对于g,枚举其两棵子树的大小,然后dp令f(i,j)表示前i棵树异或值为j的概率原创 2017-03-12 22:52:24 · 628 阅读 · 0 评论 -
[POJ2096]Collecting Bugs(期望dp)
题目描述传送门 题意: 一个软件有s个子系统,会产生n种bug 某人一天发现一个bug,这个bug属于一个子系统,属于一个分类 每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n 问发现n种bug,每个子系统都发现bug的天数的期望题解令f(i,j)表示发现了i种bug,属于j个子系统到最后的期望天数 显然f(n,s)=0 对于f(i,j),dp方程为原创 2017-03-13 15:04:17 · 394 阅读 · 0 评论 -
[POJ3071]Football(概率dp)
题目描述传送门 题意: 2^n个队进行足球赛,每个队打败另外一个队都有一个概率。 比赛一共进行n轮,每轮相邻的两只球队比赛,负者淘汰 问最后胜利的概率最大的是哪只球队题解概率dp 令f(i,j)表示第i轮第j支球队获胜的概率 那么f(i,j)=∑kf(i−1,j)∗f(i−1,k)∗p(j,k)f(i,j)=\sum\limits_{k} f(i-1,j)*f(i-1,k)*p(j,k)原创 2017-03-13 15:32:49 · 369 阅读 · 0 评论 -
[HDU3076]ssworld VS DDD(概率dp)
题目描述传送门 题意:给出每个人扔骰子得到点数的概率,2个人分别有HP1,HP2的血数,轮流扔骰子,数小的自减一血,平的不变,谁先到减0, 谁输,问A赢的概率。 注意这道题先HP2再读HP1题解令f(i,j)表示第一个人血量为i,第二个人血量为j的概率 计算每一次第一个人赢概率p1,第二个人赢概率p2,平局p3 f(i,j)=f(i,j+1)*p1+f(i+1,j)*p2+f(i,j)*p3原创 2017-03-13 18:41:17 · 648 阅读 · 0 评论 -
[Codeforces148D]Bag of mice(概率dp)
题目描述传送门 题意:一个袋子里有w只白老鼠和b只黑老鼠,有两个人轮流抓老鼠,每个人每次都等概率地抓出一只老鼠,第二个人抓完之后袋子里会等概率地跳出来一只老鼠,第一个抓到白老鼠的人获胜。问第一个人获胜的概率题解令f(i,j)表示袋子里总共用i只老鼠,并且j只为白老鼠的概率 根据剩余老鼠的数量可以判断出第几个人抓或者老鼠往外跳 那么当第一个人或者第二个人抓的时候,f(i,j)从f(i+1,j)转原创 2017-03-13 20:35:05 · 356 阅读 · 0 评论 -
[ZOJ3640]Help Me Escape(概率期望dp)
题目描述传送门 题意:某一个人,初始战斗值为f,面临着n条道路,每一条道路有一个困难程度ti,和锻炼值ci。每一天他会等概率地选择一条道路,如果他的战斗值大于ci,那么他会花费ti的天数走出去,否则他走不出去,但是战斗值增加ti。ti和ci的关系满足ti=floor((1+sqrt(5))*0.5*ci*ci) 给出n,f,ci,问这个人走出去的期望天数题解令f(i)表示战斗值为i时走出去的期望原创 2017-03-13 21:18:16 · 1128 阅读 · 0 评论 -
[HDU4336]Card Collector(概率期望+状压dp)
题目描述传送门题解f(i)表示得到的人物状态为i时的期望 然后枚举下一个状态,计算概率并转移代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int n;double p[25],f[1<<21];void clear()原创 2017-03-13 19:57:40 · 518 阅读 · 0 评论 -
[ZOJ3329]One Person Game(概率dp)
题目描述传送门题解令f(i)表示得分为i时到结束的期望 显然这道题>0的点都可以从0转移过来,0也可以从每一个>0的点转移过来 所以这题就应该画柿子了 f(i)=∑f(i+k)p(k)+f(0)P+1f(i)=\sum f(i+k)p(k)+f(0)P+1,其中p(i)表示掷出和为i的骰子的概率,P表示掷出a,b,c的概率 每一项都包含f(0),令f(i)=pa(i)f(0)+pb(i),那原创 2017-03-14 08:04:41 · 467 阅读 · 0 评论 -
[Codeforces453A]Little Pony and Expected Maximum(概率期望+快速幂)
题目描述传送门 题意:一个m面的骰子,每个面分别有1..m,每个面着地的概率是1/m,问扔n次最大值的期望。题解分别计算1-m为最大值的概率 i为最大值的概率为(im)n−(i−1m)n({i\over m})^n-({i-1\over m})^n,相当于是一个容斥 乘上权值就行了代码#include<algorithm>#include<iostream>#include<cstring原创 2017-03-14 11:13:54 · 707 阅读 · 0 评论 -
[BZOJ3566][SHOI2014]概率充电器(概率期望+树形dp)
题目描述传送门题目大意:一棵树,每一个点初始有一个概率为1,然后每个点可以沿着边向四周扩展,每条边有一个概率可以经过,问最终为1的点的个数的期望。题解f(i)表示点i从父亲扩展不到的概率,g(i)表示点i从儿子扩展不到的概率 最终的答案是 sigma 1 - f(i) * g(i) * (1-p(i)) 转移的时候,先计算出来某一个点扩展不到的概率,应该为f(i) or g(i) * 点不为1的原创 2017-05-05 11:12:24 · 987 阅读 · 0 评论