首页 > 其他分享 >「REMAKE系列」概率期望dp篇

「REMAKE系列」概率期望dp篇

时间:2022-10-28 13:22:08浏览次数:93  
标签:概率 frac times 答案 REMAKE 期望 dp

常见模型技巧总结

概率正推,期望倒推

简单概率期望

需要一些小观察的题目

图上概率期望

习题

洛谷

P6154 游走

普及+/提高图论概率期望

评测记录

题意

B 城可以看作一个有 \(n\;(n\leq 10^5)\) 个点 \(m\) 条边的有向无环图可能存在重边

zbw 在 B 城随机游走,他会在所有路径中随机选择一条路径,选择所有路径的概率相等。路径的起点和终点可以相同。

定义一条路径的长度为经过的边数,你需要求出 zbw 走的路径长度的期望,答案对 \(998244353\) 取模。

思路

  • 注意题目要求的东西,路径长度的期望等于 总长度 / 路径数。
  • \(f_i\) i 结尾的路径长度总和, \(g_i\) i 结尾的路径条数。
  • \(g_i = \sum{edge(j,i)} g_j\) \(f_i = \sum_{edge(j,i)} f_j + g_j\) 。
  • 边界 \(g_i = 1\) ,答案等于 \(\frac{\sum_i f_i}{\sum_i g_i}\) ,快速幂做逆元。

P1297 [国家集训队]单选错位

普及+/提高

评测记录

题意

\(n\leq 10^7\) 个选择题,每个选择题有 \(a_i\) 个答案,每道题的答案是上一道题的正确答案,询问期望做对的题目数量。

思路

  • 分类讨论:
    • \(a[i]=a[i-1]\) ,和随机选答案做对期望一样,\(\frac{1}{a_i} \times 1 = \frac{1}{a_i}\)
    • \(a[i] > a[i - 1]\) ,有 \(\frac{a_{i-1}}{a_i}\) 的概率答案在前一个范围内的数,在 i - 1 项有 \(\frac{1}{a_{i-1}}\) 的概率选到正确答案,答案为 \(\frac{1}{a_i}\) 。
    • \(a[i] < a[i - 1]\) ,同理答案为 \(\frac{1}{a_{i-1}}\) 。

UVA11021 Tribles

提高+/省选-

评测记录

题意

一开始有 \(k\) 种生物,这种生物只能活1天,死的时候有 \(p_i\) 的概率产生 \(i\)只这种生物(也只能活一天),询问 \(m\) 天内所有生物都死的概率(包括 \(m\) 天前死亡的情况)。

思路

  • \(dp[i]\) 表示对于某一只生物第 i 天消亡的概率,最后的答案算下 k 次幂就可以了。
  • 考虑接下来生 j 只生物,其消亡概率为 \(dp[i] = \sum_{j<n} p[j]\times dp[j]^k\) ,复杂度 \(O(nm)\) 。

Codeforces

CF768D. Jon and Orbs

CF768D 、概率DP、

给 \(k\) 种龙晶,\(q\) 个询问,每天产生一种龙晶,且概率相等,每次询问一个 \(p\),求产生 \(k\) 种龙晶的概率 \(\geq \frac{p-ε}{2000}\) 的最小天数。

  • 简单概率DP,设状态为 \(dp[i][j]\) 第 i 天产生 j 种龙晶
  • 很容易转移。其中边界是 dp[i][0] = (i == 0) ? 1 : 0;
  • 由于不知道最小天数,并且 p 和最小天数有单调性,所以直接滚动数组,预处理询问答案。
const int N = 1010;
int ans[N];
double dp[N];
int main() {
    int k, q;
    re(k), re(q);
    dp[0] = 1;
    for (int i = 1, p = 1; p <= 1000; i++) {
        for (int j = k; j; j--)
            dp[j] = dp[j] * j / k + dp[j - 1] * (k - (j - 1)) / k;
        while (p <= 1000 && dp[k] * 2000 >= p - 1e-7) ans[p++] = i;
        dp[0] = 0;
    }
    while (q--) {
        int x;
        re(x);
        printf("%d\n", ans[x]);
    }
    return 0;
}

CF1754E. Wish I Knew How to Sort

*2000期望倒推

评测记录

题意

长为 \(n\) 的 01 数组,每次随机选取一对位置交换,如果 1 在前就交换两个元素,询问选取次数的期望使数组排好序?

思路

  • 一个观察,0 和 1 的位置在排好序以后是固定的,只需要有多少个位置应该是 1 但现在是 0。
  • 统计之后,以 \(f_i\) 表示有 i 对位置还需要交换。
  • 期望倒推转移: \(f_i = \frac{i\times i}{n\times (n-1)} \times f_{i-1} + (1 - \frac{i\times i}{n\times (n-1)}) * f_i + 1\)
  • 即 \(f_i = f_{i-1} + \frac{n\times (n-1)}{i*i}\)

标签:概率,frac,times,答案,REMAKE,期望,dp
From: https://www.cnblogs.com/Roshin/p/remake_prob_dp.html

相关文章

  • 洛谷 P1077 [NOIP2012 普及组] 摆花 (DP)
    https://www.luogu.com.cn/problem/P1077题目描述摆上m盆花。一共有n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同......
  • CF1163D Mysterious Code ACA+DP
    将两个串插入AC自动机,AC自动机带点权,S串带权值1,T串带权值-1,对树在构建时求树上点权前缀和,然后设表示到的第个字符,在ACA上的第个节点时的答案,那么就有转移方程:#include<bits......
  • 【PNR#2 Div1 D】找零(DP)(贪心)
    找零题目链接:PNR#2Div1D题目大意有500,100,50,10,5,1这些面额的纸币,你有X块钱,使用最少的纸币数表示的。然后有一些物品,每种只有一个,有费用。每次你可以选择一些......
  • AcWing1069.凸多边形的划分(区间DP)
    SLOJP2067.三角剖分问题AcWing1069.凸多边形的划分(区间DP)题目描述给定由N顶点组成的凸多边形每个顶点具有权值将凸N边形剖分成N-2个三角形求N-2个三角形......
  • 完全背包问题 —— 贪心优化 DP 范围
    题意:现在有\(2n+1\)个物品(\(n\le300\)),体积分别为\(-n,-n+1,\dots,-1,0,1,\dots,n\),第\(i\)个物品有\(a_i\)个,求选出恰好\(S\)的总体积最多能选几个物品。第一......
  • ACWing 3549 -- dp&&滚动数组
    题目描述最长非递减子序列思路Reference代码......
  • eXosip 底层库UDP心跳包发送问题分析
    场景   调用eXosip库跟国标下级进行交互的时候,抓包发现,INVITE请求,前面是添加了jaK.字符串,导致对方解析异常,目前暂时不清楚对方是如何解析的。通过追踪源码,发现是底层做......
  • wordpress 调用特色图片
    调用代码get_post_thumbnail_id():获取文章缩略图IDget_the_post_thumbnail_url():获取文章缩略图链接the_post_thumbnail_url():这个函数直接显示文章缩略图链接get_the......
  • TCP与UDP的区别
    引言网络协议是每个前端工程师都必须要掌握的知识,TCP/IP中有两个具有代表性的传输层协议,分别是TCP和UDP,本文将介绍下这两者以及它们之间的区别。一、TCP/IP网络模型......
  • 线性DP-2444. 统计定界子数组的数目
    问题描述给你一个整数数组nums和两个整数minK以及maxK。nums的定界子数组是满足下述条件的一个子数组:子数组中的最小值等于minK。子数组中的最大值等于m......