zoukankan      html  css  js  c++  java
  • 计数dp+概率+大数——(抽屉问题解的个数)zoj3380

    难的地方在于计数dp。。给定范围[1,n]的数去填m个位置,要求不能出现超过I个相同的数,

    那就用dp[i][j]表示在阶段i,已经填了j个位置的可能解法,那么只要枚举i填的位置数k∈[0,min(j,I-1)]进行状态转移即可

    /*
    范围在[1,n]取m次,问有>=I个数相同的概率
    那么分母必定是m^n
    现在来看分子,因为>=I,I+1,....n的计数不好求,所以转化为计数 <I 的个数即可
    
    1-n之间的数填m次 每个数最多填I-1次,可以用dp[i,j]表示用1-i个数填了j次的个数
    转移方程如下:数i填了k次,即从i-1填剩下的位置中挑了k个,0<=k<=min(I-1,j)(i可以不填,但最多只能填I-1次) 
    dp[i,j]=sigma dp[i-1,j-k]*C( m-(j-k),k )
    三重循环 i j k 
    初始化dp[0][0]=1
    
    要用大数写。。 
    */
  • 相关阅读:
    网页抓取
    基本数据结构
    小节
    顺序统计量
    线性时间排序
    快速排序
    堆排序 Heapsort
    大数运算
    趣味题,文本中洞的数量
    nginx config配置
  • 原文地址:https://www.cnblogs.com/zsben991126/p/11042320.html
Copyright © 2011-2022 走看看