zoukankan      html  css  js  c++  java
  • poj 1322 chocolate

    题目大意:

    每次从一个有x种颜色巧克力的包里拿出一个巧克力,拿出每种不同颜色的巧克力的概率相同

    若包外面有两个颜色相同的巧克力,则吃掉这两个巧克力

    求n次操作后桌上有m个巧克力的概率

    思路:

    概率dp

    dp i j表示i次操作后有j个巧克力的概率

    则有两种转移,就是之前有j+1个然后取出来一个,有一个颜色相同

    还有一个是之前有j-1个然后取出来一个,颜色不同

    再加上奇数次操作无法得到偶数颗糖,偶数次无法得到奇数颗

    以及只需要计算到小数点后三位所以当n>=1000时,可以按照奇偶直接剪枝

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<cstring>
     6 #include<memory.h>
     7 #include<vector>
     8 #include<queue>
     9 #include<cstdlib>
    10 using namespace std;
    11 int n,m;
    12 double c,f[2010][2010];
    13 int main()
    14 {
    15     while(cin>>c>>n>>m&&c!=0)
    16     {
    17         if(n>1000) n=1000+(n&1);
    18         f[0][0]=f[1][1]=1;
    19         for(int i=2;i<=n;i++)
    20         {
    21             for(int j=0;j<=i;j++)
    22             {
    23                 f[i][j]=f[i-1][j+1]*((double)j+1)/c+f[i-1][j-1]*(c-(double)(j-1))/c;
    24             }
    25         }
    26         printf("%.3lf
    ",f[n][m]);
    27     }
    28 }
    View Code
  • 相关阅读:
    day3-python之函数进阶(三)
    day3-python之函数初识(二)
    day3-python之文件操作(一)
    tomcat
    集群
    nginx
    nginx--zabbix监控status waiting
    zabbix监控之mysql主从状态&mysql主从延迟
    zabbix监控之进程&日志监控
    zabbix监控流程(监控linux上某个文件是否有改动)
  • 原文地址:https://www.cnblogs.com/yyc-jack-0920/p/7221782.html
Copyright © 2011-2022 走看看