概率与期望
BrooksBUAA
这个作者很懒,什么都没留下…
展开
-
[BZOJ 3029]守卫者的挑战:期望DP
点击这里查看原题f[i][j][k]表示前i个挑战中挑战成功j次,目前背包容量-碎片数为k的概率。 直接开这么大的数组会MLE,因此需要使用滚动数组。/*User:SmallLanguage:C++Problem No.:3029*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using names原创 2017-04-18 14:27:04 · 385 阅读 · 0 评论 -
[BZOJ 3036]绿豆蛙的归宿:期望DP
点击这里查看原题f[i]表示从i到N的期望,因此f[i]为i能到的各个点的期望+边权的和除k。/*User:SmallLanguage:C++Problem No.:3036*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std;const int M=1e5+5;原创 2017-04-18 15:43:18 · 357 阅读 · 0 评论 -
[BZOJ 4008][HNOI2015]亚瑟王:期望DP
点击这里查看原题f[i][j]表示第i张卡在第j回合被轮到(但不一定发动)的概率。 f[i][j]= f[i-1][j] * ( 1-p[i-1] ) ^ j + f[i-1][j+1] * ( 1- ( 1-p[i-1] ) ^ ( j+1 ) ) ,ans+=f[i][j] * ( 1 - ( 1 - p[i] ) ^ j ) * d[i]。/*User:SmallLanguage:C++原创 2017-04-18 16:21:05 · 380 阅读 · 0 评论 -
[BZOJ 3450]Tyvj1952 Easy:期望DP
点击这里查看原题设l为当前期望长度,分为三种情况:当前位为‘x’,l清零当前位为‘o’,ans+=(l+1)^2-l^2,l++当前位为‘?’,那么l可能变成l+1,也可能变成0,因此l的期望变为(l+1)/2,ans+=(2l+1)/2。/*User:SmallLanguage:C++Problem No.:3450*/#include<bits/stdc++.h>#defin原创 2017-04-19 11:22:03 · 378 阅读 · 0 评论 -
[BZOJ 1426]收集邮票:期望DP
点击这里查看原题挺神奇的一道题,我自己没完全看懂题解,还是放别人的链接吧。这里/*User:SmallLanguage:C++Problem No.:1426*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std;double f[10005],g[10005];i原创 2017-04-19 14:18:14 · 628 阅读 · 0 评论 -
[COGS 1487]麻球繁衍:概率
点击这里查看原题f[i]表示一只毛球及其后代在前i天全死掉的概率,则f[i]=p[0]+p[1] * f[i-1]+p[2] * f[i-1]^2+p[3] * f[i-1]^3+…… 因为各个毛球间的生存概率相互独立,所以答案为f[m]^k。/*User:SmallLanguage:C++Problem No.:11021*/#include<bits/stdc++.h>#defin原创 2017-04-19 17:21:29 · 379 阅读 · 0 评论 -
[COGS 1489]玩纸牌:期望
点击这里查看原题f[i][j]表示玩i局赢j局的概率,则f[i][j]=f[i-1][j] * (1-p)+f[i-1][j-1] * p,于是对于每天而言,失败的概率q为f[n][i] (0<=i<=a*n/b)。 可以得到,第一天失败的概率为q,第二天失败的概率为(1-q) * q,第三天失败的概率为(1-q)^2 * q…… 因此,总的期望ex=q * 1+ (1-q) * q * 2+(原创 2017-04-19 19:25:13 · 442 阅读 · 0 评论 -
[BZOJ 2318]Spoj4060 game with probability Problem:概率
点击这里查看原题还是看别人的题解吧,很简单易懂/*User:SmallLanguage:C++Problem No.:2318*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std;int n;double p,q,f[1005],g[1005];void sol转载 2017-04-20 09:01:47 · 348 阅读 · 0 评论 -
[BZOJ 1415][Noi2005]聪聪和可可:期望
点击这里查看原题点数为1000,因此可以使用n^2算法。p[i][j]表示聪聪在i,可可在j,聪聪下一步走的点。先从每个点出发做一次BFS,预处理出p数组。然后记忆化搜索,f[i][j]表示聪聪在i,可可在j,聪聪追上可可的期望步数,于是f[i][j]=sigma{f[i往j走两步到达的点][j或j临近的点]}/(reg[j]+1)+1/*User:SmallLanguage:C++Probl原创 2017-04-20 09:51:21 · 323 阅读 · 0 评论