题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1322

题意简述: ACM牌巧克力共有C中不同颜色的品种。一天,Sandy进行了如下游戏:从一个装满巧克力的袋子(袋中的不同颜色的巧克力是同样多的,且假定巧克力数目足够多),一个一个拿出巧克力放于桌上,如拿出的巧克力与桌上某一个巧克力颜色相同,那么Sandy则将两块全部吃掉。现要求从袋中拿出了N块巧克力后,桌面上还剩余M块巧克力的概率。

解题思路:设dp[n][m]表示取了n块后,剩余m块巧克力的概率。则有:

dp[n][m]=0(n+m为奇数时);dp[n][m]=dp[n-1][m-1]*(c-m+1)/c+dp[n-1][m+1]*(m+1)/c。

方程是出来了,但是看看数据范围,表示肯定不能直接进行动态规划。于是看了一下别人的方法,发现dp[n][m]这个值是收敛的,也就是说当n足够大是dp[n][m]的值变化不大了,于是把自己的加个条件就过了,具体看代码的注释。(后面这部分看别人的,不会证明,数学太弱了)

代码:

#include<stdio.h> #include<string.h> using namespace std; double a[1002][105]; int main() { int c,n,m; while(scanf("%d",&c)&&c) { scanf("%d%d",&n,&m); memset(a,0,sizeof(a)); if(m>c||m>n) { printf("0.000/n"); continue; } if(n>1000) { if(n&1) n=1001; //由于dp[n][m]的值跟n的奇偶性有关,判断一下 else n=1000; } a[0][0]=1.0; for(int i=1;i<=n;i++) { a[i][0]=a[i-1][1]/(c+0.0); a[i][c]=a[i-1][c-1]/(c+0.0); for(int j=1;j<=c;j++) a[i][j]=a[i-1][j+1]*(j+1)/(c+0.0)+a[i-1][j-1]*(c-j+1)/(c+0.0); } printf("%.3f/n",a[n][m]); } return 0; }

pku1322 Chocolate相关推荐

  1. 2015: [Usaco2010 Feb]Chocolate Giving

    2015: [Usaco2010 Feb]Chocolate Giving Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 269  Solved:  ...

  2. HDU 2282 Chocolate (最小费用最大流)

    HDU  2282 Chocolate (最小费用最大流) #include <iostream> #include <cstdio> #include <queue&g ...

  3. 14行代码AC_Break the Chocolate HDU-4112(数学推导+解析)

    励志用少的代码做高效表达 Problem describe Benjamin is going to host a party for his big promotion coming up. Eve ...

  4. 【.NET 遇上 GraphQL】使用 Hot Chocolate 构建 GraphQL 服务

    Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任 ...

  5. 使用Hot Chocolate创建ASP.NET Core GraphQL服务

    GraphQL介绍 GraphQL是一个用于API的查询语言,是一个使用基于类型系统来执行查询的服务端运行时.GraphQL对你的API中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它 ...

  6. [指数型生成函数专练]chocolate,红色病毒问题,排列组合,字串数

    文章目录 T1:chocolate 题目 题解 code T2:"红色病毒"问题 题目 题解 code T3:排列组合 题目 题解 code T4:字串数 题解 code T1:c ...

  7. 【记忆化搜索】【dfs】【递归】Chocolate

    Chocolate 题目大意: 有一块巧克力(每一个单位有一定的美味值),判断是否可以把他分为k块美味值相等的小巧克力 原题: 题目描述 Charlie 有一块巧克力. 这块巧克力是矩形的,有 n 行 ...

  8. Jzzhu and Chocolate(CF-449A)

    Problem Description Jzzhu has a big rectangular chocolate bar that consists of n × m unit squares. H ...

  9. Codeforces Round #257 (Div. 2) C. Jzzhu and Chocolate

    C. Jzzhu and Chocolate time limit per test 1 second memory limit per test 256 megabytes input standa ...

最新文章

  1. 人工智能语音技术支持“多情感程度”调节,细腻演绎“人声”
  2. 基于OpenCV的显著图绘制
  3. python网络爬虫的基本步骤-Python网络爬虫与信息提取(一)(入门篇)
  4. composer不成功的原因
  5. 外星人装深度linux,17xR4深度拆机教程、加装MSATA固态硬盘及评测
  6. tia v15 添加项目_硬技能,TIA 博途软件界面的介绍
  7. Spring 框架 AOP 的总结
  8. UVA10140 Prime Distance
  9. 一些osu的皮肤下载
  10. 记录一次使用Aliyun OSS 存图片
  11. POI导出excel,按照父子节点进行分级显示
  12. homelede软路由设置方法_二级lede软路由设置方法,lede设置软路由网卡
  13. 资本的游戏-笔记(一)
  14. 计算机cat的应用,计算机辅助系统
  15. STM32 汇编程序——串口输出 Hello world
  16. python调用打印机参考例子_Python调用打印机参考例子
  17. 股市----别人的经验
  18. Zabbix探索:关于网络设备SysUpTime监控的问题
  19. python爬虫之request.get()参数
  20. ModuleNotFoundError: No module named ‘keras_applications.resnet_v2‘解决方式

热门文章

  1. 如何在BIOS中设置电脑定时开机
  2. PDA手持终端有哪些应用?
  3. 手机上的三件事别乱去做,一不留神就会中毒,现在了解还来得及
  4. Maya中材质球的创建与赋予
  5. 视觉SLAM十四讲(高翔第二版)
  6. 开独立网店最重要的两个环节
  7. 逻辑回归应用之Kaggle泰坦尼克之灾
  8. 华为设备Smart Link和Monitor Link配置命令
  9. 【干货】网红营销如何转化成付费订单?
  10. Android开发中之手机定位(记录)