zoukankan      html  css  js  c++  java
  • 概率期望+计数

    1. CF398B

      令$f[i][j]$表示已经有i行j列满足条件是期望需要多少次,那么只要枚举下一个点的位置即可。

      然后写出来转移,移项就可以得到$f[i][j]$的表达式。

    2. CF605E

      因为可以原地不动,所以一个点必然会走到期望步数更少的点。

      考虑给点按照期望步数排序,那么假如确定了排名的序列,就可以递推出所有点的期望。

      所以考虑如何确定每个点的排名。枚举排名,求出每个点假如在这个排名的期望,然后取最小的点安排在这个排名。

    3.trip

      由期望的线性性,显然可以将贡献分为黑点和白点的。

      对于黑点,转移可以简单的写出来,化简之后是可以进行dp的形式。

      对于白点,只要计算经过每个白点的概率。

      那么可以看做去掉他的所有儿子,并且把这个点染黑。然后就转化成了之前的问题。

      只要考虑发生变化的东西即可。

    4.期望逆序对

      考虑计算每一对点的贡献,那么将所有位置分成三类,即在$i$,$j$或其他位置。

      对于不在$i,j$的贡献,容易发现在每个位置的概率相等,所以可以计算。

      然后构造矩阵,快速幂可以求出贡献,再套上线段树即可计算所有点对贡献。

    5.CF838D

      将所有位置看做一个环,并且新加入一个特殊点,那么不合法的方案可以看做特殊点被选择的方案。

      那么容易发现每个点不被选的概率相同,所以转化一下题意就可以简单计算了。

    6.AGC002F

      分情况讨论,若k=1,那么答案是1。

      否则,考虑0的出现位置,假如第i个0出现了,那么之后必然会出现i种颜色。

      所以考虑dp,记录当前一共几个0和用了几种颜色,转移的时候考虑当前颜色在后面怎么摆放即可,贡献就是组合数。

    7.CF995F

      枚举最终出现了多少种权值,最后贡献乘上组合数。

      考虑计算点权不超过某个数的方案数,可以简单树形dp得到。

      然后容斥可以得到恰好用了$i$种数字的方案数。

  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number (考虑负数的情况)
    8. String to Integer (整数的溢出)
    7. Reverse Integer (整数的溢出)
    LeetCode Minimum Size Subarray Sum
    LeetCode Course Schedule II
    Linux 文件缓存 (一)
    LeetCode Tries Prefix Tree
    Linux : lsof 命令
    LeetCode Binary Tree Right Side View
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12778620.html
Copyright © 2011-2022 走看看