概率dp
青烟绕指柔!
我不怕千万人阻挡,只怕自己投降。
展开
-
WJMZBMR打osu! / Easy
题目链接:WJMZBMR打osu! / Easydp[i] 为以 i 结尾的答案,cnt[i] 为以 i 结尾的连续 o 的期望个数。然后当遇到 ‘?’ 时,考虑两种转移合并即可。然后,这个数组可以滚动优化。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;const int N=3原创 2020-09-13 12:53:43 · 364 阅读 · 0 评论 -
Codeforces - Broken robot
题目链接:Codeforces - Broken robot显然可以dpdp[i][j]为在位置(i,j)走到最后一行的期望。然后dp[i][j]=(dp[i][j]+dp[i+1][j]+dp[i][j-1]+dp[i][j+1])/4+1但是这个方程是不能直接递推的,所以我们可以高斯消元。但是这个是会收敛的,所以我们多做几次dp即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/std原创 2020-07-09 20:28:33 · 226 阅读 · 0 评论 -
Codeforces - Painting The Wall
题目链接:Codeforces - Painting The Wall期望dp,但是状态不好想。因为:我们只需要知道当前还差几行几列,所以我们可以状态表示为:dp[i][j] ,当前还差i行j列的期望。这种完成性期望显然可以倒推。给定m个点之后,其实我们也只关心差几行几列。考虑转移,可以直接看代码,比较简单。AC代码:#pragma GCC optimize("-Ofast","-...原创 2020-03-16 20:22:49 · 236 阅读 · 0 评论 -
Codeforces - Andrey and Problem
题目链接:Andrey and Problem考虑加入某个数字的贡献:若当前1个人同一的概率为x,0个人同一的概率为y,当前加入的人概率为pP = x*(1-p) + p*yP = x + p * (y - x)可以看出,如果y>x就可以一直加人进来,加谁呢?最大的p!AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loo...原创 2020-02-11 23:17:13 · 185 阅读 · 0 评论 -
Codeforces - Game on Tree
题目链接:Codeforces - Game on Tree考虑每个点的贡献。如果这个点会被染色,那么一定父亲以及祖先没有被染色。所以这个点的贡献为 1.0/dep[x] ,上面的概率乘以操作次数1.AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#def...原创 2020-02-07 22:56:18 · 222 阅读 · 0 评论 -
BZOJ - 4318
题目链接:BZOJ - 4318三次方期望。一次方期望:x1[i]=(x1[i-1]+1)*p二次方期望:x2[i]=(x2[i-1]+2*x1[i-1]+1)*p同时我们知道(x+1)^3-x^3=3*x^2+3*x+1所以我们知道dp式子为:dp[i]=dp[i-1]+(x2[i-1]*3+x1[i-1]*3+1)*pAC代码:#pragma GCC optimize(...原创 2020-02-07 22:31:54 · 283 阅读 · 0 评论 -
Codeforces - Let's Play Osu!
题目链接:Codeforces - Let’s Play Osu!二次方期望。如果我们令dp[i]是以i结尾的期望值。又因为(x+1)^2-x^2=2*x+1所以我们要知道这一次的贡献,需要知道线性期望。线性期望很简单:f[i]=(f[i-1]+1)*p所以 dp[i] = dp[i-1] + 2 * (f[i-1]*2 + 1) * pAC代码:#pragma GCC op...原创 2020-02-07 22:09:17 · 251 阅读 · 0 评论 -
Codeforces - Bag of mice
题目链接:Codeforces - Bag of mice状态很好想,就是dp[i][j]表示,当前i只白,j只黑,先手获胜的概率。怎么转移呢?如果先手直接抓白,概率为:i/(i+j)如果先手黑,后手白。因为算获胜概率,所以不管。如果先手黑,后手黑,跑黑:如果先手黑,后手黑,跑白:只有这几种可能,直接转移即可。AC代码:#pragma GCC optimize("-Ofas...原创 2020-02-07 21:45:24 · 181 阅读 · 0 评论 -
Codeforces - Puzzles
题目链接:Codeforces - Puzzles设dp[x]为x节点的期望,显然可以从父节点转移。我们令当前节点x是父节点所有儿子的访问排名为 i 其他节点排x前面的概率为 (i-1)/(m-1),所以其他节点的贡献为 (i-1)/(m-1)*size[v]显然当前节点排名的概率为 1/size[fa]所以期望为 1/size[fa]*Σ(i-1)/(m-1)*size[fa]-1-...原创 2020-02-03 17:30:02 · 218 阅读 · 0 评论 -
HDU - 5036
Problem DescriptionEveryone knows Matt enjoys playing games very much. Now, he is playing such a game. There are N rooms, each with one door. There are some keys(could be none) in each room correspon...原创 2020-01-29 13:51:51 · 269 阅读 · 0 评论 -
Chino with Triangle
直接去想怎么是合法的三角形,比较麻烦。如果我们想不合法的三角形,我们可以发现因为距离都是树上的距离,只有三个点在一条链上的时候才是不合法的。否则都是合法的三角形。所以要算出不合法的三角形。也就是我们要枚举每一条链?怎么枚举呢?这个就和点分治比较类似了,只不过我们不用点分治这么麻烦,我们直接枚举每个点为三角形中间的点v,其余两个点在不同子树中的答案即可。AC代码:#pragma GCC ...原创 2020-01-10 12:41:54 · 249 阅读 · 0 评论 -
绿豆蛙的归宿
给出一个有向无环的连通图,起点为1,终点为N,每条边都有一个长度。数据保证从起点出发能够到达图中所有的点,图中所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。现在绿豆蛙想知道,从起点走到终点所经过的路径总长度的期望是多少?输入格式第一行: 两个整数 N, M,代表图中...原创 2019-12-23 23:52:35 · 181 阅读 · 0 评论 -
Race to 1 Again
Rimi learned a new thing about integers, which is - any positive integer greater than 1 can be divided by its divisors. So, he is now playing with this property. He selects a number N. And he calls th...原创 2019-12-23 22:15:34 · 167 阅读 · 0 评论 -
流星雨
题目链接:流星雨比较简单的概率dp,我们令dp[i]为第i天,下流星雨的概率,然后就不难递推了。最后乘以下流星雨的个数即可。AC代码:#include<bits/stdc++.h>#define int long longusing namespace std;const int p=1e9+7;const int N=1e5+10;int n,a,b,x,y,w...原创 2019-12-23 15:56:03 · 218 阅读 · 0 评论 -
HDU- 6656 Kejin Player
Kejin PlayerTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1901 Accepted Submission(s): 789Problem DescriptionCuber QQ always envies ...原创 2019-12-06 20:57:07 · 168 阅读 · 0 评论 -
Codeforces - Beautiful Mirrors
E. Beautiful Mirrorstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputCreatnx has n mirrors, numbered from 1 to n. Every day, Creatnx asks exac...原创 2019-12-06 17:02:32 · 329 阅读 · 1 评论