随笔分类 -  概率期望

摘要:假设已经求出了在每个点的最优期望收益,显然最优策略是仅当移动一次后的期望收益>当前点收益时移动。对于初始点,其两边各存在一个最近的不满足上述条件的位置,因此从初始点开始随机游走,直到移动到这两个点之一时停止即为最优方案。 设当前点为i,左边的停止点为x,右边的停止点为y,考虑在x停止和在y停止的概率 阅读全文
posted @ 2019-01-14 16:32 Gloid 阅读(229) 评论(0) 推荐(0) 编辑
摘要:考虑min-max容斥,改为求位集合内第一次有位变成1的期望时间。求出一次操作选择了S中的任意1的概率P[S],期望时间即为1/P[S]。 考虑怎么求P[S]。P[S]=∑p[s] (s&S>0)=1-∑p[s] (s&S==0)。做一个高维前缀和即可。 阅读全文
posted @ 2019-01-01 16:19 Gloid 阅读(208) 评论(0) 推荐(0) 编辑
摘要:离散化后,容易想到设f[i][j]为i节点权值为j的概率,不妨设j权值在左子树,则有f[i][j]=f[lson][j](pi·f[rson][1~j]+(1-pi)·f[rson][j~m])。 考虑用线段树合并优化这个dp。记录前缀和,合并某节点时,若某棵线段树在该节点处为空,给另一棵线段树打上 阅读全文
posted @ 2018-12-21 13:00 Gloid 阅读(198) 评论(0) 推荐(0) 编辑
摘要:如果直接dp,状态里肯定要带上已走过的点的集合,感觉上不太好做。 考虑一种对期望的minmax容斥:其中Max(S)为遍历完S集合的期望步数,Min(S)为遍历到S集合中一个点的期望步数。当然才不管怎么证,反正看上去非常优美。 设f[i][S]为由i节点出发的Min(S),显然有f[i][S]=Σf 阅读全文
posted @ 2018-12-20 22:39 Gloid 阅读(372) 评论(0) 推荐(0) 编辑
摘要:考虑容斥,枚举一个子集S在1号猎人之后死。显然这个概率是w1/(Σwi+w1) (i∈S)。于是我们统计出各种子集和的系数即可,造出一堆形如(-xwi+1)的生成函数,分治NTT卷起来就可以了。 阅读全文
posted @ 2018-12-20 13:15 Gloid 阅读(200) 评论(0) 推荐(0) 编辑
摘要:每种父亲编号小于儿子编号的有标号二叉树的出现概率是相同的,问题相当于求所有n个点的此种树的所有结点两两距离之和。 设f[n]为答案,g[n]为所有此种树所有结点的深度之和,h[n]为此种树的个数。 枚举左右子树大小,则有f[n]=Σ{[f[i]+(g[i]+h[i]*i)·(n-i)]·h[n-i- 阅读全文
posted @ 2018-12-08 12:07 Gloid 阅读(150) 评论(0) 推荐(0) 编辑
摘要:下称0类为单边,1类为互生边,2类为互斥边。对于一种匹配方案,考虑其出现的概率*2n后对答案的贡献,初始为1,如果有互斥边显然变为0,否则每有一对互生边其贡献*2。于是有一个显然的dp,即设f[S1][S2]为左边选取S1右边选取S2对答案的贡献。转移时考虑S1中编号最小的点x与右边的点y匹配。首先 阅读全文
posted @ 2018-12-07 22:38 Gloid 阅读(278) 评论(0) 推荐(0) 编辑
摘要:大胆猜想每一步都相当于是第一步。稍微验证一下发现是对的。就做完了。 阅读全文
posted @ 2018-12-03 13:39 Gloid 阅读(154) 评论(0) 推荐(0) 编辑
摘要:容易发现跟树没什么关系,可以预处理出每个点若走向分叉点期望走多少步才能回到上个存档点,就变为链上问题了。考虑dp,显然有f[i][j]表示在i~n中设置了j个存档点,其中i设置存档点的最优期望步数。转移枚举下一个存档点设在哪,则有f[i][j]=min(f[k][j-1]+d[i][k]),其中d[ 阅读全文
posted @ 2018-11-29 23:05 Gloid 阅读(345) 评论(0) 推荐(0) 编辑
摘要:注意到A+B+C很小,容易想到设f[i][A][B][C]为第i次攻击后有A个血量为1、B个血量为2、C个血量为3的期望伤害,倒推暴力转移即可。 阅读全文
posted @ 2018-11-23 23:10 Gloid 阅读(236) 评论(0) 推荐(0) 编辑
摘要:容易想到的做法是建出AC自动机,高斯消元。然而自动机上节点数量是nm的。 注意到我们要求的变量只有n个,考虑将其他不用求的节点合并为一个变量。这个变量即表示随机生成一个串,其不包含任何一个模板串的概率。 现在即有n+1个变量,考虑列出n+1个方程。设pi表示第i个人胜利的概率,显然有Σpi=1。然后 阅读全文
posted @ 2018-11-21 00:36 Gloid 阅读(274) 评论(0) 推荐(0) 编辑
摘要:考虑求出所有MST的权值和再除以方案数,方案数显然是2mn。 按位考虑,显然应该让MST里的边高位尽量为0。那么根据最高位是0还是1将点集划分成两部分,整张图的MST就是由两部分各自的MST之间连一条最小边得到的。两部分的MST权值和可以dp得到,即设f[i][j]表示i个点权值在0~2j-1的MS 阅读全文
posted @ 2018-11-18 17:12 Gloid 阅读(414) 评论(0) 推荐(0) 编辑
摘要:首先求出每个女性接受某个男性的概率。这个概率显然是一个无穷等比数列求和。 然后按编号从小到大考虑每个女性,维护出每个男性被选择的期望次数,BIT上查询后缀和即可。 需要long double。 阅读全文
posted @ 2018-10-31 15:19 Gloid 阅读(209) 评论(0) 推荐(0) 编辑
摘要:设f[i][0/1]为考虑前i位,第i位为0/1时的期望得分(乘以是0/1的概率)。暴力转移显然。前缀和优化即可。 但是这个前缀和精度无法承受,动不动就nan。 考虑增加一位的贡献。若之前后缀1的个数为x,则增加一个1的贡献为(x+1)3-x3=3x2+3x+1。因此记录后缀1的个数期望、后缀1的个 阅读全文
posted @ 2018-10-26 19:43 Gloid 阅读(261) 评论(0) 推荐(0) 编辑
摘要:每个节点被经过的概率即为该区间和/总区间和。那么所需要计算的东西就是每个节点的平方和了。修改对于某个节点的影响是使其增加2sum·l·x+l2x2。那么考虑对子树的影响,其中Σl2是定值,修改后Σsum·l会增加Σl2x。维护一下就好。 懒得纠结爆long long的问题了,被卡90算了。 阅读全文
posted @ 2018-10-10 02:34 Gloid 阅读(207) 评论(0) 推荐(0) 编辑
摘要:k=1的话非常好做,每个有1的位都有一半可能性提供贡献。由组合数的一些性质非常容易证明。 k=2的话,平方的式子展开可以发现要计算的是每一对位提供的贡献,于是需要计算每一对位被同时选中的概率。找出所有存在的相互绑定的位,这些位被同时选择的概率为0.5,而不被绑定的则为0.25。 对于k>=3,其实用 阅读全文
posted @ 2018-10-04 08:35 Gloid 阅读(274) 评论(0) 推荐(0) 编辑
摘要:设f[i]为i在子树内不与充电点连通的概率。则f[i]=(1-pi)·∏(1-qk+qk·f[k])。 然后从父亲更新答案。则f[i]=f[i]·(1-qfa+qfa*f[fa]/(1-qfa+qfa*f[i]))。 比较好想的dp。注意第二个式子可能会除0。 阅读全文
posted @ 2018-09-26 19:51 Gloid 阅读(154) 评论(0) 推荐(0) 编辑
摘要:容易发现的一点是如果确定了每一层有哪些点,树的形态就确定了。问题变为划分bfs序。 考虑怎样划分是合法的。同一层的点在bfs序中出现顺序与dfs序中相同。对于dfs序中相邻两点依次设为x和y,y至多在x的下一层。特殊的,根单独作为一层。 这些条件显然是必要的,考虑一种构造方案:对于某个点,如果其在d 阅读全文
posted @ 2018-09-24 17:29 Gloid 阅读(177) 评论(0) 推荐(0) 编辑
摘要:将两个人各自所在点视为状态,新建一个图。到达某个终点的概率等于其期望次数。那么高斯消元即可。 阅读全文
posted @ 2018-09-19 22:01 Gloid 阅读(171) 评论(0) 推荐(0) 编辑
摘要:考虑树的部分分怎么做。令f[i]为i向子树内走的期望路径长度,转移比较显然。算答案时先把其父亲的答案弄好就可以统计自己的答案了。 环套树也类似。树里直接dp,对环上点暴力考虑环上的每条路径,算完后再在树里统计答案。 说起来不是很难。事实上想清楚了也确实不是很难。 不明白为什么不管啥题我都能把代码写的 阅读全文
posted @ 2018-09-12 19:59 Gloid 阅读(210) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示